程序文件名:CTK33.c 一、要求说明: 1. 请点击出题按钮,下载并打开试题文件 CTK.c ;按试题要求进行操作。 2. 该程序中标有“【____________】”为需要程序填空的标志,考生可以把题干中的代码在编译器中编辑,根据程序的功能,在填空标志处填入合适的代码(覆盖填空标志),并调试运行程序; 3. 完成相关操作后,按本题的程序文件名进行保存并关闭文件;再按本页界面的上传向导选择试题文件,点击【上传到服务器评分】。 二、注意事项: 1. 在填空时,需删除填空标志“【____________】”、确保不会产生语法错误,再根据程序功能填充;调试运行程序。 2. 不得加行、减行、加句、减句。 三、程序功能: 先输入n的值(正整数) ,再输入n个三位正整数,统计其中水仙花数的个数。三位水仙花数,即其个位、十位、百位数字的立方和等于该数本身。 【输入样例】 10 153 407 208 153 370 107 371 704 173 407 【输出样例】 6 【程序代码】 #include <stdio.h> int main(void) { int i, n, x, cnt, a, b, c; scanf("%d", &n); cnt = 0; for(【____________】) { scanf("%d", &x); a = x / 100 % 10; b = x / 10 % 10; 【____________】 ; if(a * a * a + b * b * b + c * c * c == x) { 【____________】 ; } } printf("%d", cnt); return 0; }
时间: 2024-01-17 20:04:39 浏览: 61
以下是CTK33.c程序的答案:
```c
#include <stdio.h>
int main(void) {
int i, n, x, cnt, a, b, c;
scanf("%d", &n);
cnt = 0;
for(i = 1; i <= n; i++) //循环n次,读入n个数
{
scanf("%d", &x);
a = x / 100 % 10; //取百位数
b = x / 10 % 10; //取十位数
c = x % 10; //取个位数
if(a * a * a + b * b * b + c * c * c == x) //判断是否为水仙花数
{
cnt++; //计数器加1
}
}
printf("%d", cnt); //输出水仙花数的个数
return 0;
}
```
程序中需要填写三个空白处,分别为for循环的条件、取十位数的语句和计数器加1的语句。
在for循环中,我们需要循环n次,读入n个数。每次读入一个数后,我们需要取出它的百位、十位和个位,分别存储在变量a、b、c中。然后判断这个数是否为水仙花数,如果是,我们需要将计数器cnt加1。
取十位数的语句可以通过x除以10取余再除以10的方法来实现,也可以通过x除以10后取模10的方式来实现。在程序中,我们使用了前一种方法。
计数器加1的语句很简单,只需要在if语句中使用cnt++即可。
最后使用printf函数输出水仙花数的个数即可。
阅读全文