一、问题
求 1+12+123+……前 n 项之和,其中n 是从键盘输入的一个数字(1~9)
二、解答
#include <stdio.h>int main()
{int n, i, term = 0, sum = 0;printf("请输入一个数字(1~9): ");scanf("%d", &n);if (n < 1 || n > 9){printf("输入的数字超出范围!\n");return 1;}for (i = 1; i <= n; i++){term = term * 10 + i;sum += term;}printf("前 %d 项之和为:%d\n", n, sum);return 0;
}
输出结果如下:
请输入一个数字(1~9): 3
前 3 项之和为:136
三、总结
在这个程序中,首先声明了必要的变量:n 用于存储用户输入的数字,i 用于循环计数,term 用于构建每一项的值,sum 用于存储前 n 项的和。
然后,程序提示用户输入一个数字,并使用 scanf 函数读取这个数字。接着,程序检查输入的数字是否在 1 到 9 的范围内。如果不在这个范围内,程序会输出一个错误消息并退出。
如果输入的数字有效,程序将使用一个 for 循环来计算前 n 项的和。在每次循环中,程序都会更新 term 的值(通过将 term 乘以 10 并加上当前的 i 值),然后将 term 加到 sum 上。
最后,程序输出前 n 项的和,并返回 0 表示程序正常结束。