(1)统计从键盘上输入的字符中的数字字符的个数,用换行符结束循环。
#include <iostream>
using namespace std;
int main()
{
int n = 0, c;
c = getchar();
while (c != '\n')
{
if (c >= '0' && c <= '9')
n++;
c = getchar();
}
cout << n << endl;
return 0;
}
(2)
#include <stdio.h>
int main()
{
int y = 10;
do
{
y--;
} while (--y);
printf("%d\n", y--);
}
(3)
#include <stdio.h>
int main()
{
int i, j, x = 0;
for (i = 0; i < 2; i++)
{
x++;
for (j = 0; j <= 3; j++)
{
if (j % 2)
continue;
x++;
}
x++;
}
printf("x=%d\n", x);
}
(4)
#include <stdio.h>
int main()
{
int i = 1, s = 3;
do
{
s += i++;
if (s % 7 == 0)
continue;
else
++i;
} while (s < 15);
printf("%d", i);
}
(5)求有多少种方法可将1.0元人民币兑换成1分,2分,5分,1角,2角,5角。
#include <iostream>
using namespace std;
int main()
{
int yf, ef, wf, yj, ej, wj, count;
for (yf = 0; yf <= 100; yf++)
for (ef = 0; ef <= 50; ef++)
for (wf = 0; wf <= 20; wf++)
for (yj = 0; yj <= 10; yj++)
for (ej = 0; ej <= 5; ej++)
for (wj = 0; wj <= 2; wj++)
if (yf + 2 * ef + 5 * wf + 10 * yj + 20 * ej + 50 * wj == 100)
count++;
cout << count << endl;
return 0;
}
(6)蝴蝶
#include <iostream>
using namespace std;
int main()
{
int i, j, n;
cin >> n;
for (i = -(n / 2); i <= (n / 2); i++)
{
for (j = 0; j <= abs(i); j++)
cout << " ";
for (j = 0; j < 2 * ((n / 2 + 1) - abs(i)) - 1; j++)
cout << "*";
for (j = 0; j < 2 * abs(i); j++)
cout << " ";
cout << '\b';
for (j = 0; j < 2 * ((n / 2 + 1) - abs(i)) - 1; j++)
cout << "*";
cout << endl;
}
return 0;
}
(7)数字金字塔
#include <iostream>
using namespace std;
int main()
{
int i, j, k, h, n;
cin >> n;
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n - i; j++)
cout << " ";
for (k = 1; k <= n - j + 1; k++)
cout << k << " ";
for (h = k - 1; h >= 1; h--)
{
if (h != (k - 1))
cout << h << " ";
}
cout << endl;
}
return 0;
}
(8)找出方阵中每列中的最小元素及其所在的行号,并将这些最小元素中的最大值与最小值及其行列号输出。
#include <iostream>
using namespace std;
int main()
{
int a[3][4] = {
{
1, 2, 3, 4}, {
9, 8, 7, 6}, {
-1, -2, 0, 5}};
int i, j;
int b[4][2] = {
{
-1, 2}, {
-2, 2}, {
0, 2}, {
4, 0}};
int min, max, min_j, max_j, ii;
for (j = 0; j < 4; j++)
{
min = a[0][j];
ii = 0;
for (i = 0; i < 3; i++)
if (a[i][j] < min)
{
min = a[i][j];
ii = i;
}
b[j][0] = min;
b[j][1] = ii;
}
for (i = 0; i < 4; i++)
{
for (j = 0; j < 2; j++)
cout << b[i][j] << " ";
cout << endl;
}
min = max = b[0][0];
min_j = max_j = 0;
for (i = 0; i < 4; i++)
{
if (b[i][0] < min)
{
min = b[i][0];
min_j = i;
}
if (b[i][0] > max)
{
max = b[i][0];
max_j = i;
}
}
cout << "min:" << min << " " << b[min_j][1] << " " << min_j << endl;
cout << "min:" << b[min_j][0] << " " << b[min_j][1] << " " << min_j << endl;
cout << "max:" << max << " " << b[max_j][1] << " " << max_j << endl;
cout << "max:" << b[max_j][0] << " " << b[max_j][1] << " " << max_j << endl;
return 0;
}
(9)随机产生15个互不重复的介于0~19之间的随机整数存入数组中。
#include <iostream>
#include <time.h>
#include "stdlib.h"
using namespace std;
int main()
{
int i, j, x;
int a[15];
srand((unsigned)time(NULL));
for (i = 0; i < 15; i++)
{
x = rand() % 20;
for (j = 0; j < i; j++)
while (x == a[j]) //如果x与前面的数相同,则再找一个数
{
x = rand() % 20;
j = 0;
}
a[i] = x;
}
for (i = 0; i < 15; i++)
{
cout << a[i] << " ";
}
}
#include <iostream>
#include "stdlib.h"
#include <time.h>
using namespace std;
int main()
{
int i, x;
int a[15];
bool f[20] = {
0};
for (i = 0; i < 15; i++)
{
x = rand() % 20;
if (f[x])
{
i--;
continue;
}
a[i] = x;
f[x] = 1;
}
for (i = 0; i < 15; i++)
{
cout << a[i] << " ";
}
}