【发布时间】:2015-05-05 00:29:07
【问题描述】:
我正在开发这个应该输出 10 个素数的程序。所以我的问题是,一旦数组中存储了 10 个素数,我不知道如何告诉程序停止。我试图做 sizeof(primes)/siseof(int) == 10 ,但它不起作用。 请帮帮我。在此先感谢
int ar[100],primes[10],j,n,i,var;
printf("Enter a prime ,\n");
for(i=0;i<n;i++)
{
scanf("%d",&ar[i]);
if (IsPrime(ar[i])) {
primes[i] = ar[i];
if( sizeof(primes) / sizeof(int) == 10) break;
} else {
printf("%d is not a prime number\n", ar[i]);
}
}
printf("\narray :\n");
【问题讨论】:
-
增加一个计数器,并测试它是否达到了10。
-
我试过 if( sizeof(primes) / sizeof(int) == 10) break;但它不起作用
-
sizeof(primes) / sizeof(int)是整个primes数组的大小,而不是您目前填写的数字。 -
primes[i] = ar[i];显然这是不对的。考虑i是否为80。另外,sizeof是容器的大小,而不是其内容。当内容改变时它不会改变。所以检查sizeof也是错误的。 -
为什么你的程序最后打印的是
ar[]的内容,而不是primes[]的内容?
标签: c