所以我的作业如下:
“编写一个程序,从输入文本文件input.txt中读取数字列表。对于每个读取的数字,您的程序应确定并打印出该数字是否丰富。”
我有代码了,我想我终于找到了如何查找和求和所有除数来检查数字是否丰富,但问题是我如何去下一个数组块来检查下一个号码?现在它正在检查“15”这是要检查的第一个数字( 5 告诉程序需要检查多少个数字)但我如何检查它下一个数字 3 等等?
谢谢你!#include <stdio.h>
#define SIZE 100
int main(){
FILE *ifp;
int cases;
int i;
int j;
int counter = 1;
int dividen =1;
int listArray[SIZE];
int sum = 0;
ifp = fopen("input.txt", "r");
fscanf(ifp,"%d", &cases);
for(i=0;i<cases;i++){
fscanf(ifp,"%d",&listArray[i]);
printf("%d\n", listArray[i]);}
while(listArray[0] > counter){
if(listArray[0] % dividen == 0){
sum = sum+dividen;
dividen++;
counter++;}
else{
dividen++;
counter++;}
}
if(listArray[0] > sum)
printf("\n%d is not an abundant number\n",listArray[0]);
system("pause");
return 0;
}
答案 0 :(得分:0)
将检查丰度的代码移动到存储到listArray
的同一个循环中,或者在listArray
的每个元素后面编写另一个循环。
对这类问题的一个很好的解决方案就是:
static const int TO_READ = 3; // For example.
FILE* file = open_input_file();
variable foo, bar, baz;
while ( TO_READ == fscanf( file, format, &foo, &bar, &baz )) {
do_stuff_with( foo, bar, baz );
}