turbo c中的问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 13:14:50
我在TURBO C中编的下边程序:
main()
{
int sum=o,i,j;
do
{scanf("%d,&i));
while(i<=10000)
{
sum=sum+i;
i++;
}
printf("sum=%d,do the other please print a number of small than 5'or not",sum);
scantf('%d",&j);
}
while(j<5);
printf("good bay");
}
主要有两个问题一是:按理说应该是一个求和的程序啊 可是运行后得到的数据并不是求和的数据。第二个问题就是:怎么j值大于了5后没有显示GOOD BAY呢?
希望在不改动原数据的情况下给我一个明细的 通俗的答案 谢谢
看了第一个回答者的回答后我懂了一些 可是我要说的是 我是中午时看的书(我高考刚好毕业)然后就编的 以前一直没有看过这方面的东西 现在准备读这方面的专业所以我现练习一下 所以说我很菜很菜 所以我让你们尽量通俗点

第一个问题:

TC的int值范围是-32768~32767,输入一个小于1000的数字后所得的和极有可能大于32767,此时就无法用int型变量正确保存这个结果。

第二个问题

也许是由于屏幕没有暂停导致你没有看到显示的结果,在printf()后加一个getchar()之类的暂停语句后再试。

你的程序语法错误连篇,请自行修改。

#include<stdio.h>
void main()
{
long int sum=0,i,j;
do
{
scanf("%d",&i);
while(i<=10000)
{
sum=sum+i;
i++;
}
printf("sum=%d,do the other please print a number of small than 5'or not",sum);
scanf("%d",&j);
}
while(j<5);
printf("good bay");
}

首先,在不改变你的程序的情况下,是不可能通过编译的

sum=o //这里应该是0而不是字母o,关键是sum类型是int,
//显然求和的结果超出了int的范围
scanf("%d,&i)); //这里少了后半",多了个)

scantf('%d",&j);//这里拼写错误

第二个问题是你的问题,会显示的good bay的,不要输出窗口闪了一下不见了就以为没输出

最后还得说一句,再见的英文是"good bye"