|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ c语言错误原因
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
853
人关注过本帖,
1
人收藏
标题:
c语言错误原因
只看楼主
加入收藏
姚志良
等 级:
新手上路
帖 子:6
专家分:4
注 册:2012-4-7
结帖率:
100%
楼主
收藏
(1)
已结贴
√
问题点数:20 回复次数:12
c语言错误原因
#include<stdio.h>
int fun(int n)
{
int i;
for(i=2;i<n;i++)
{if(n%i!=0)
return 1;
return 0;}
}
main()
{
int n,c,sum=0;
{
for(n=3;n<=100;n++)
c=fun(n);
sum=sum+c;}
printf("素数之和=%d\n",sum);
}
求3到100 素数之和答案不对啊
搜索更多相关主题的帖子:
原因
c语言
原因
c语言
2012-04-20 08:47
举报帖子
使用道具
赠送鲜花
S_Ringo
来 自:歌舞伎町
等 级:
业余侠客
帖 子:94
专家分:230
注 册:2012-4-15
第
2
楼
收藏
得分:2
你少了个else吧?
第8行……
你看看这个:
if(n%i!=0)
return 1;
return 0;
是不是如果执行完了return 1之后,后面的return 0 依然会执行啊?(这个我也不确定,呵呵)
还有主函数里的for语句里,你的fun()函数的返回值不是0就是1,所以你的c值不是0就是1,请问怎样求和?
最后,你的语句格式很不规范啊,主函数里,for语句下没有花括号,反而for语句和下面的被花括号括起来成复合语句了……why?
2012-04-20 09:07
举报帖子
使用道具
赠送鲜花
S_Ringo
来 自:歌舞伎町
等 级:
业余侠客
帖 子:94
专家分:230
注 册:2012-4-15
第
3
楼
收藏
得分:0
建议你搜一下林锐博士写的《C++/C高质量编程》,学习一下里面的格式规范,嘿嘿,很有用的
2012-04-20 09:12
举报帖子
使用道具
赠送鲜花
dc__sky
等 级:
论坛游侠
帖 子:31
专家分:117
注 册:2012-3-13
第
4
楼
收藏
得分:2
int fun(int n)
{
int i;
for(i=2;i<n;i++)
{if(n%i!=0)
return 1;
return 0;}
}
这里是素数就返回1,那肯定不对嘛
红色的改为 return n;
2012-04-20 09:15
举报帖子
使用道具
赠送鲜花
PsSyg
等 级:
论坛游民
帖 子:14
专家分:14
注 册:2011-10-17
第
5
楼
收藏
得分:2
int fun(int n)
{
int i;
for(i=2;i<n;i++)
{if(n%i!=0)
return 1;
return 0;}
}
n未被赋值所以程序会按顺序执行,这条是全局变量语句
----------------------------------------------------
main()
{
int n,c,sum=0;
{
for(n=3;n<=100;n++)
c=fun(n);
sum=sum+c;}
printf("素数之和=%d\n",sum);
}
-----------------------------------------------
int n,c,sum=0;这是局部变量语句,这条语句只能存在于main()里面而无法给上面语句的变量赋值。
2012-04-20 09:29
举报帖子
使用道具
赠送鲜花
ab1034982749
等 级:
蜘蛛侠
帖 子:215
专家分:1185
注 册:2012-4-14
第
6
楼
收藏
得分:2
我认为还是应该这样改
#include<stdio.h>
int fun(int n)
{
int i;
for(i=2;i<n/2;i++)
{
if(n%i==0)
return 0;
}
if(i>n/2)
return 1;
}
int main()
{
int n,sum=0;
for(n=3;n<=100;n++)
if(fun(n))
sum=sum+n;
printf("100以内的素数之和=%d\n",sum);
return 0;
}
2012-04-20 18:44
举报帖子
使用道具
赠送鲜花
cuijunchao
来 自:湖南桂东
等 级:
职业侠客
威 望:
3
帖 子:132
专家分:386
注 册:2012-4-4
第
7
楼
收藏
得分:2
你的int fun(int n)
{
int i;
for(i=2;i<n;i++)
{if(n%i!=0)
return 1;
return 0;}
}这段程序就无法完成素数的判断,看看我的结构把
int sushu(int x)
{
int i,flag=1;
for(i=2,i<sqrt(x);i++)
if(x%i==0) {flag=0;break;}
return flag;
}
2012-04-20 19:21
举报帖子
使用道具
赠送鲜花
蓝xuan
等 级:
业余侠客
帖 子:81
专家分:211
注 册:2012-3-31
第
8
楼
收藏
得分:2
#include<stdio.h>
int fun(int n)
{
int i,k=2;
for(i=2;i<n;i++)
{
if(n%i==0)
return 0;
else
k++;
}
if(k>=n-2)
return n;
}
main()
{
int n,c,sum=0;
{
for(n=3;n<=100;n++)
{
c=fun(n);
sum=sum+c;
}
}
printf("素数之和=%d\n",sum);
}
2012-04-20 20:57
举报帖子
使用道具
赠送鲜花
heifeng2012
来 自:上海
等 级:
论坛游侠
帖 子:53
专家分:113
注 册:2012-3-22
第
9
楼
收藏
得分:2
再研究下
2012-04-20 21:26
举报帖子
使用道具
赠送鲜花
小跳蚤
等 级:
青峰侠
威 望:
1
帖 子:437
专家分:1623
注 册:2011-4-9
第
10
楼
收藏
得分:2
多看看
2012-04-21 17:28
举报帖子
使用道具
赠送鲜花
13
1/2页
1
2
快速回复:
c语言错误原因
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.098910 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved