问下这个程序那里错了,请各位高手,老湿,指点下

「已注销」 2011-11-10 09:55:41
#include<stdio.h>
main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
 {x1=(x2+1)*2;
 x2=x1;
 day--;
 }
printf("the total is %d\n",x1);
}
...全文
404 42 打赏 收藏 转发到动态 举报
写回复
用AI写文章
42 条回复
切换为时间正序
请发表友善的回复…
发表回复
程序员小迷 2012-02-05
  • 打赏
  • 举报
回复
哪里出的问题?
phantom_lancer 2011-11-28
  • 打赏
  • 举报
回复
看着晕晕的
bmowker 2011-11-28
  • 打赏
  • 举报
回复
高手!
[Quote=引用 37 楼 soft_and_hard_ware 的回复:]

【回复#26楼】

1、#28楼,为正解。

2、两处错误:“判断操作”不能用赋值语句;你想要的是累加,结果是a[2]+a[2]=9+9=18。

总结:1、相等的判断语句,应该用"==",而不是"="。
2、像类似情况,Debug一下就恍然大悟了。
http://www.purji.com/list-8.htm
[/Quote]
delphirumen 2011-11-28
  • 打赏
  • 举报
回复
已学习。。中文空格。 害死人。
fcly1981826ly 2011-11-26
  • 打赏
  • 举报
回复
别着急,会知道的。。
Moriarty 2011-11-26
  • 打赏
  • 举报
回复
按你代码的意思,sum = 2 * a[2][2],即18
若想得到15,最后一句应该写成:sum += a[i][j]
紫雪 2011-11-26
  • 打赏
  • 举报
回复
码入程序的时候请注意空格与输入法之类的,这个程序运行可以运行,但是复制你的进去就不行了,不知道是什么情况,有可能是很多中文状态下的字符吧!
soft_and_hard_ware 2011-11-26
  • 打赏
  • 举报
回复
【回复#26楼】

1、#28楼,为正解。

2、两处错误:“判断操作”不能用赋值语句;你想要的是累加,结果是a[2]+a[2]=9+9=18。

总结:1、相等的判断语句,应该用"==",而不是"="。
2、像类似情况,Debug一下就恍然大悟了。
夜夜风_ 2011-11-25
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 qinbo0110 的回复:]

#include<stdio.h>
int main()
{int sum,i,j;
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
printf("\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{if(i=j) // 这里是判断啊 应该是 “==”
sum=a[i][j]+a[i][j]; /* 然后是这里,sum的结果是最后一次 a[i][j]+a[i][j] 的结果,不是累加,应该是这样改 sum += a[i][j] 试试吧。*/
}
printf(……
[/Quote]
还有啊!楼主,你该结贴了!
bool 2011-11-25
  • 打赏
  • 举报
回复
哈哈 才发3个
amowker 2011-11-25
  • 打赏
  • 举报
回复
可以的
[Quote=引用 9 楼 wks342639355 的回复:]

C/C++ code
#include<stdio.h>
int main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{
x1=(x2+1)*2;
x2=x1;
day--;
}
printf("the total is %d\n",x1);
……
http://www.mowker.com/qkdq.htm
[/Quote]
龙龙胖 2011-11-23
  • 打赏
  • 举报
回复
尽量别中文····
重庆-老白 2011-11-23
  • 打赏
  • 举报
回复
x1未初始化;
x1=0;
ybjx111 2011-11-23
  • 打赏
  • 举报
回复

#include<stdio.h>
int main()
{int sum,i,j;
sum=0;
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
printf("\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if(i==j)//这里不对
sum+=a[i][j];
}
printf("%d",sum);
printf("\n");
return 0;
}计算的值是18而不是15为什么
alinne678 2011-11-23
  • 打赏
  • 举报
回复
应该是if(i==j)
「已注销」 2011-11-23
  • 打赏
  • 举报
回复
#include<stdio.h>
int main()
{int sum,i,j;
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
printf("\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{if(i=j)
sum=a[i][j]+a[i][j];
}
printf("%d",sum);
printf("\n");
return 0;
}计算的值是18而不是15为什么
yt_cloud 2011-11-21
  • 打赏
  • 举报
回复
“中文空格”?学习了
tttt234567890 2011-11-21
  • 打赏
  • 举报
回复
没有错误 但是你里面有中文的空格
sunderlands 2011-11-20
  • 打赏
  • 举报
回复
没猜错的话,估计是结果不对 吧,你的X1没有初始化。这不像java。
还有你的main前面怎么什么东西都没有。。。。。。至少也来个void的什么
Aurantius 2011-11-19
  • 打赏
  • 举报
回复
main()前面没有加个数据类型吧,没加的话`我在vc6里有个警告,后面加个return 0;就没了
中间while那里应该是空格的问题,试了下程序没问题。
#include<stdio.h>
int main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{
x1=(x2+1)*2;
x2=x1;
day--;
}
printf("the total is %d\n",x1);
return 0;
}
结果1534
加载更多回复(21)

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧