【求助求助】这个第18行的警告是怎么回事呀?
#include <stdio.h>
#include <math.h>
int main()
{
int n;
int sum = 0;
scanf("%d",&n);
if(n <= 1 )
printf("ERROR");
else
{
for(int s=2;s<=n;s++)
{
if (sushu(s) != 0)
sum = sum + s;
}
printf("素数和=%d",sum);
}
}
int sushu (int s)
{
for(int i=2;i<s;i++)
{
if(s%i==0)
break ;
}
}
sushu函数没有写return 没有return。。 要加入return 我真是中奖绝缘体啊{:10_266:} return BngThea 发表于 2020-4-10 19:09
sushu函数没有写return
那该如何修改呢 ,我刚才尝试了一下 ,修改以后结果就不对,现在输出的结果是对的,不明白为什么....
这个下面是判断是否是素数的一个函数,我想让这个数是素数函数返回这个数的值,要是不是素数就返回0 本帖最后由 liuzhengyuan 于 2020-4-10 19:44 编辑
星海风驰 发表于 2020-4-10 19:33
那该如何修改呢 ,我刚才尝试了一下 ,修改以后结果就不对,现在输出的结果是对的,不明白为什么....
这 ...
首先要知道你的 sushu 是干什么的
然后再返回你需要的值
我看这里好像 是返回 0或1
那么就 (只要 return 了这个函数就结束啦)
int sushu (int s)
{
for(int i=2;i<s;i++)
{
if(s%i==0)
return 1;
}
return 0;
}
#include <stdio.h>
#include <math.h>
int sushu(int s);
int main()
{
int n;
int sum = 0;
scanf("%d", &n);
if (n <= 1)
printf("ERROR");
else
{
for (int s = 2; s <= n; s++)
{
if (sushu(s) != 0)
sum = sum + s;
}
printf("素数和=%d", sum);
}
}
int sushu(int s)
{
for (int i = 2; i < s; i++)
{
if (s%i == 0)
return 0;;
}
return 1;//你想怎么返回?
} 还有,这个函数定义不是要放在 main (主程序)的前面吗~ 星海风驰 发表于 2020-4-10 19:33
那该如何修改呢 ,我刚才尝试了一下 ,修改以后结果就不对,现在输出的结果是对的,不明白为什么....
这 ...
返回改为bool类型,循环中if条件成立返回false,否则返回true
页:
[1]