文章目录
- 第五章.循环结构程序设计
- (1)计算并输出1!+2!+......+n!(其中n<16)。
- (2)输入1000以内的所有完数。“完数”是指一个数的因子之和等于自身。
- (3)输入两个正整数m和n,计算并输出其最大公约数。
- (4)一个球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,再反跳。求它再第8次落地时共经过多少米,第8次反弹多高。
- (5)输入一行字符,分别统计其中英文字母、数字和其他字符的个数。
- (6)从键盘输入任意个整数,以-888结束(不计入),计算并输出其中的最大数和最小数。
- (7)要将100元钱换成1元、5元和10元的零钱,每种零钱的张数大于0,且为5的倍数,编程输出所可能的换法。
- (8)百钱百鸡问题。用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,小鸡三只一钱,编程输出所有可能的买法(每种鸡至少一只)。
第五章.循环结构程序设计
(1)计算并输出1!+2!+…+n!(其中n<16)。
int main() {
int i, n = 16, sum = 0;
for (i = 1; i < n; i++) {
sum = sum + (i * i);
}
printf("和:%d", sum);
return 0;
}
(2)输入1000以内的所有完数。“完数”是指一个数的因子之和等于自身。
int main() {
int i, j, sum;
printf("1000以内的完数有:");
for (i = 1; i <= 1000; i++) {
sum = 0;
for (j = 1; j <= i; j++) {
if (i % j == 0 && i != j)
sum += j;
}
if (i == sum)
printf("%d ", i);
}
return 0;
}
(3)输入两个正整数m和n,计算并输出其最大公约数。
int min(int x, int y) {
if (x < y)
return x;
else
return y;
}
int main() {
int m, n, k = 1, o;
printf("输入两数:");
scanf("%d %d", &m, &n);
o = min(m, n);
for (int i=2;i<=o; i++) {
if (m % i == 0 && n % i == 0) {
k = i;
continue;
}
}
printf("最大公约数:%d", k);
return 0;
}
(4)一个球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,再反跳。求它再第8次落地时共经过多少米,第8次反弹多高。
int main() {
int m = 0;
float n = 100, count = 100;
printf("第几次:");
scanf("%d", &m);
for (int i = m; i > 1; i--) {
n = n / 2;
count += n * 2;
}
n = n / 2;
printf("第%d次落地共经过:%fm\n第%d次反弹:%fm", m, count, m, n);
return 0;
}
(5)输入一行字符,分别统计其中英文字母、数字和其他字符的个数。
他人:while实现
(6)从键盘输入任意个整数,以-888结束(不计入),计算并输出其中的最大数和最小数。
int main() {
printf("输入任意个整数:\n");
int n = 0, M = 0, m = 0;
do
{
scanf("%d", &n);
if (n != -888) {
M = n > M ? n : M;
m = n < m ? n : m;
}
} while (n != -888);
printf("最大数:%d\n最小数:%d", M, m);
return 0;
}
(7)要将100元钱换成1元、5元和10元的零钱,每种零钱的张数大于0,且为5的倍数,编程输出所可能的换法。
int main() {
int a = 5, b = 5, c = 5;
for (; a < 10; a += 5) {
for (b = 5; b < 20; b += 5) {
c = (100 - 10 * a - 5 * b);
if (c % 5 == 0 && c>1) {
if (10 * a + 5 * b + c == 100)
printf("%d张1元、%d张5元、%d张10元\n", c, b, a);
}
}
}
}
(8)百钱百鸡问题。用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,小鸡三只一钱,编程输出所有可能的买法(每种鸡至少一只)。
int main() {
int a = 1, b = 1, c = 1;//只数
//for (; a <= 20; a++) {
// for (b=1; b <= 33; b++) {
// c = (100 - 5 * a - 3 * b) * 3;
// if (a + b + c == 100)
// printf("公鸡%d只,母鸡%d只,小鸡%d只\n", a, b, c);
// }
//}
for (; a < 20; a++) {
for (b=1; b < 34; b++) {
c = 100 - a - b;
if (c % 3 == 0) {
if (5 * a + 3 * b + c / 3 == 100)
printf("公鸡%d只,母鸡%d只,小鸡%d只\n", a, b, c);
}
}
}
return 0;
}