【发布时间】:2018-12-27 06:44:37
【问题描述】:
如何将所有除数存储在数组 a 中??
这个程序显示一个数字的除数,然后决定它是质数和/或完美的......问题是我无法将除数的值存储在数组 a 中。
#include <stdio.h>
#include <stdlib.h>
int main()
{ int DivCount=0,n,i,j,a[100],sum=0;
printf("Please Enter the Number : ");
scanf("%d",&n);
for(i=1;i<=n;i++)
if (n%i==0){
a[i-1]=i;
DivCount++;
}
printf("\nThe Number Has %d divisors : ",DivCount);
for(i=0;i<DivCount;i++)
printf("%d\t",a[i]);
if (DivCount==2)
printf("\nThe Number is Prime");
else
printf("\nThe Number is NOT Prime");
for(i=0;i<DivCount;i++)
sum+=a[i];
printf("\nThe Sum of the divisors is :%d",sum);
if (sum==n)
printf("\nThe Number is Perfect");
else
printf("\nThe Number is NOT Perfect");
return 0;
}
例如 (n=6) 数组应该是 = {1,2,3,6}
【问题讨论】:
-
a[i-1]=i;是主要问题。使用另一个变量进行数组索引,从而保持除数的数量。例如:a[divisor_count++] = i; -
OT:为了便于阅读和理解:1) 遵循公理:每行只有一个语句,并且(最多)每个语句一个变量声明。 2) 不要省略可选的大括号 '{' 和 '}'
标签: c arrays variable-assignment