如何增加我想操纵的数组块

时间:2015-10-07 17:19:56

标签: c for-loop while-loop

所以我的作业如下:

“编写一个程序,从输入文本文件input.txt中读取数字列表。对于每个读取的数字,您的程序应确定并打印出该数字是否丰富。”

input.txt = enter image description here

我有代码了,我想我终于找到了如何查找和求和所有除数来检查数字是否丰富,但问题是我如何去下一个数组块来检查下一个号码?现在它正在检查“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;
}

1 个答案:

答案 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 );
}