Day6算法题-循环
2026/8/16 6:44:33 网站建设 项目流程

题目 1:两数之和为 100 时结束程序

持续从键盘获取输入,当两数之和为 100 时,结束这个程序。

#include <stdio.h> int main() { int a, b; while (1) { printf("请输入两个数:"); scanf("%d %d", &a, &b); if (a + b == 100) { printf("两数之和为 100,程序结束。\n"); break; } } return 0; }

题目 2:求 10 个整数的最大差值

从键盘获取 10 个整数(取值范围 1-1000),求出它们最大的差值。例如 1,40,3,4,5,29,20,8,4,10 的最大差值为 40-1=39。

#include <stdio.h> int main() { int a, b, c, d, e, f, g, h, i, j; int min; int max; printf("请输入10个正整数:"); scanf("%d %d %d %d %d %d %d %d %d %d", &a, &b, &c, &d, &e, &f, &g, &h, &i, &j); for (int k = 1; k <= 1000; k++) { if ((k == a) || (k == b) || (k == c) || (k == d) || (k == e) || (k == f) || (k == g) || (k == h) || (k == i) || (k == j)) { min=k; break; } } for (int n = 1000; n >= 1; n--) { if ((n == a) || (n == b) || (n == c) || (n == d) || (n == e) || (n == f) || (n == g) || (n == h) || (n == i) || (n == j)) { max = n; break; } } printf("最大差值为:%d", max - min); return 0; } //难度:Dismal

题目 3:求所有数位之和

给出一个 0-10000 的整数,求出其所有数位之和。例如输入 1234,输出 1+2+3+4 的值 10。

#include <stdio.h> int main() { int a; int sum=0; printf("请输入任意一个数:"); scanf("%d", &a); for (int k = 1; k < 5; k++) { sum += a % 10; a=a / 10; } printf("数位之和为:%d",sum ); return 0; }//难度:Dismal

题目 4:判断素数

从键盘输入一个正整数,判断其是否为素数。素数只能被 1 和它本身整除,1 不算素数。

#include <stdio.h> int main() { int a; printf("请输入任意一个数:"); scanf("%d", &a); for (int k = 2; k < a; k++) { if (a % k == 0) { printf("该数不是素数"); return 0; } } printf("该数是素数"); return 0; }//难度:Dismal

题目 5:求 s=a+aa+aaa+... 的值

求 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字(由用户输入)。例如 2+22+222+2222+22222(此时共有 5 个数相加),几个数相加由用户输入。用户输入 a=2,b=5。

#include <stdio.h> int main() { int a; int s = 0; scanf("%d", &a); printf("s="); for (int i = 1; i <= 5; i++) { s += a; printf("%d+", a); a = a % 10 + a * 10; } printf("\b=%d", s); return 0; }//难度:Dismal

题目 6:逆序输出并统计位数

给一个不多于 5 位的正整数,要求将其逆序输出,并且输出其位数。

#include <stdio.h> int main() { int i = 1; int a; int b= 0; scanf("%d", &a); while (i <=5) { if ((a % 10) != 0) { printf("%d", a % 10); a = a / 10; b++; i++; } else { printf(""); i++; } } printf("\n 位数为%d", b); return 0; }//难度:Dismal

题目 7:判断回文整数

给你一个整数 x,如果 x 是一个回文整数,返回 true;否则,返回 false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如 121 是回文,123 不是,-121 不是(从右往左 121-)。

#include <stdio.h> int main() { int i = 1; int a; scanf("%d", &a); int c = a; int sum = 0; printf("逆序数为:"); while (i <= 12) { if ((a % 10) != 0) { printf("%d", a % 10); sum = (sum + a % 10) * 10; a = a / 10; i++; } else { printf(""); i++; } } if ((sum / 10) == c&&(sum>=0)) { printf("\n是回文数"); } else { printf("\n不是回文数"); } return 0; }//难度:Dismal

题目 8:分解连续数

分解连续数(可以穷举)。输入一个正整数,打印所有它可以分解成连续数的形式。例如输入 15,输出 15=1+2+3+4+5、15=4+5+6、15=7+8。

#include <stdio.h> int main() { int n; printf("请输入一个正整数:"); scanf("%d", &n); // 穷举起点 start,至少要两个连续数,所以 start 最大到 n/2 for (int k = 1; k <= n / 2; k++) { int sum = 0; for (int i = k; i <= n; i++) { sum += i; if (sum == n) { printf("%d=%d", n, k); for (int j = k + 1; j <= i; j++) { printf("+%d", j); } printf("\n"); break; } if (sum > n) { break; } } } return 0; } //难度:Badass

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询