C语言基础:循环练习题
1. 计算n以内所有正奇数的和 ? n值通过键盘输入
#include <stdio.h>int main(){int n, a;int sum = 0;printf("输入一个数字:");scanf("%d", &n);for(a = 0; a <= n ; a++){//printf("a = %d\n", a);if (a % 2 != 0 ) {sum += a;//printf("sum = %d\n", sum);}//printf("%d\n", a);}printf("结果:%d", sum);return 0;
}
2. 计算 1 + 1/(2 * 3) + 1/(3 * 4) + ...+ 1/(n * (n + 1)) = ? 直到最后一相值小于0.00001为至。
#include <stdio.h>int main()
{double n = 2.0;double a;double sum = 0.0;while(n > 0){a = 1/(n * (n + 1));if (a < 0.00001){break;}else{sum += a;}n++;}printf("%lf",sum + 1);return 0;
}
3. 计算1+1/2 - 1/3 + 1/4 - 1/5 ...+1/n= ? n通过键盘输入(int k = -1)
#include <stdio.h>int main()
{int n;// 初始化总和为 1 double sum = 1.0;// 符号控制 int s = -1;printf("输入n的值:");scanf("%d", &n);for (int i = 2; i <= n; i++) {sum += s * (1.0 / i);// 切换符号s *= -1;}printf("1 + 1/2 - 1/3 + 1/4 - 1/5 ... + 1/%d的结果是:%lf\n", n, sum);return 0;
}
4. 计算n的阶乘 ? n! = 123.....*n n值通过键盘输入。
#include <stdio.h>int main()
{int n, a = 1;printf("输入n的值:");scanf("%d", &n);for (int i = 1; i <= n; i++) {a *= i;}printf("%d 的阶乘是:%d\n", n, a);return 0;
}
5. 输出半径为1~10的圆面积,面积大于100时停止。
#include <stdio.h>
#include <math.h>int main()
{for (int r = 1; r <= 10; r++) {double a = M_PI * pow(r, 2);if (a > 100) {break;}printf("半径为 %d 的圆面积是:%.2lf\n", r, a);}return 0;
}
6. 求输入的十个整数中正数的个数及其平均值。
#include <stdio.h>int main()
{int count = 0, sum = 0, num = 0;printf("请输入10个整数:\n");for (int i = 0; i < 10; i++) {scanf("%d", &num);if (num > 0) {count++;sum += num;}}if (count > 0) {printf("正数个数:%d\n", count);printf("正数平均值:%.2lf\n", (double)sum / count);} else {printf("没有正数\n");}return 0;
}
7. 打印出100以内能整除7的自然数。
#include <stdio.h>int main()
{printf("100以内能整除7的自然数有:\n");for (int i = 1; i <= 100; i++) {if (i % 7 == 0) {printf("%d\n", i);}}return 0;
}
8. 打印乘法表。
#include <stdio.h>int main()
{int i, j;for (i = 1; i <= 9; i++) {for (j = 1; j <= i; j++) {printf("%d ×%d = %d\t", j, i, i * j);}printf("\n");}return 0;
}
9. 我国古代数学家张丘建在《算经》一书中提出的数学问题:
鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。
百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
#include <stdio.h>int main()
{int x, y;printf("组合:\n");for (x = 0; x <= 20; x++) // 鸡翁最多20只{for (y = 0; y <= 33; y++) // 鸡母最多33只{int z = 100 - x - y; // 鸡雏数量if (z >= 0 && z % 3 == 0 && 5 * x + 3 * y + z / 3 == 100) {printf("鸡翁:%d只,鸡母:%d只,鸡雏:%d只\n", x, y, z);}}}return 0;
}
10. 从键盘上输入多个无符号整型数据,直到 0 结束 ,输出所输入数据中的最大值。
#include <stdio.h>int main()
{unsigned int num, max = 0;printf("请输入多个整型数据(无符号),输入0结束:\n");while (1) {scanf("%u", &num);if (num == 0) {break; // 输入0时终止循环}if (num > max) {max = num; // 更新最大值}}printf("其中的最大值是:%u\n", max);return 0;
}