一道很简单的C语言题目,哪位好心人帮我看看哪里错了?
试编写C程序,它将不停地接受用户输入的数字,直到最后两个数字完全相同为止,然后打印出已接收数字的个数(不包括最后一个),以及这些数字的累加和。程序提示和输出界面如下所示:...
试编写C程序,它将不停地接受用户输入的数字,直到最后两个数字完全相同为止,然后打印出已接收数字的个数(不包括最后一个),以及这些数字的累加和。程序提示和输出界面如下所示:
Number:5
Number:-6
Number:0
Number:45
Number:45
4 numbers were entered and their sunm is 44
我的代码是这样的:
#include "stdio.h"
#define MAX_STRING 100
int Sum(int string[]);
int size;
void main()
{
int index;
int numbers[MAX_STRING];
int sum;
size=0;
numbers[0]=0;
printf("Number: ");
scanf("%d",&numbers[0]);
for(index=1;numbers[index]!=numbers[index-1];index++)
{
printf("Number: ");
scanf("%d",&numbers[index]);
size=size+1;
}
sum=Sum(numbers);
printf("%d numbers were entered and their sum is %d",size,sum);
}
int Sum(int string[])
{
int sum=0;
int index=0;
for(index=0;index<size;index++)
sum=sum+string[index];
return sum;
}
我不知道哪里错了啊。。。。。谁帮帮我啊~ 展开
Number:5
Number:-6
Number:0
Number:45
Number:45
4 numbers were entered and their sunm is 44
我的代码是这样的:
#include "stdio.h"
#define MAX_STRING 100
int Sum(int string[]);
int size;
void main()
{
int index;
int numbers[MAX_STRING];
int sum;
size=0;
numbers[0]=0;
printf("Number: ");
scanf("%d",&numbers[0]);
for(index=1;numbers[index]!=numbers[index-1];index++)
{
printf("Number: ");
scanf("%d",&numbers[index]);
size=size+1;
}
sum=Sum(numbers);
printf("%d numbers were entered and their sum is %d",size,sum);
}
int Sum(int string[])
{
int sum=0;
int index=0;
for(index=0;index<size;index++)
sum=sum+string[index];
return sum;
}
我不知道哪里错了啊。。。。。谁帮帮我啊~ 展开
3个回答
展开全部
for(index=1;numbers[index]!=numbers[index-1];index++)
{
printf("Number: ");
scanf("%d",&numbers[index]);
size=size+1;
}
把上面这个for循环的终止条件换一个地方,改成下面这样:
for(index=1;1;index++)
{
printf("Number: ");
scanf("%d",&numbers[index]);
size=size+1;
if(numbers[index]==numbers[index-1])
break;
}
对于如下格式的for循环:
for (语句a;语句b;语句c)
{
……
}
每次执行完花括号内的内容后,先执行语句c,再判断语句b。
按你原来的写法,肯定不会出现numbers[index]与numbers[index-1]相等的情况。
你也可以改成下面,与你原来的形式更像一点:
for(index=1;numbers[index-1]!=numbers[index-2];index++)
{
printf("Number: ");
scanf("%d",&numbers[index]);
size=size+1;
}
{
printf("Number: ");
scanf("%d",&numbers[index]);
size=size+1;
}
把上面这个for循环的终止条件换一个地方,改成下面这样:
for(index=1;1;index++)
{
printf("Number: ");
scanf("%d",&numbers[index]);
size=size+1;
if(numbers[index]==numbers[index-1])
break;
}
对于如下格式的for循环:
for (语句a;语句b;语句c)
{
……
}
每次执行完花括号内的内容后,先执行语句c,再判断语句b。
按你原来的写法,肯定不会出现numbers[index]与numbers[index-1]相等的情况。
你也可以改成下面,与你原来的形式更像一点:
for(index=1;numbers[index-1]!=numbers[index-2];index++)
{
printf("Number: ");
scanf("%d",&numbers[index]);
size=size+1;
}
展开全部
for(index=1;numbers[index]!=numbers[index-1];index++)
{
printf("Number: ");
scanf("%d",&numbers[index]);
size=size+1;
}
循环里面才开始读入 numbers[index] ,循环判断上已经在比较它了
{
printf("Number: ");
scanf("%d",&numbers[index]);
size=size+1;
}
循环里面才开始读入 numbers[index] ,循环判断上已经在比较它了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-05-10
展开全部
你这个程序停不下来,为什么?
for(index=1;numbers[index]!=numbers[index-1];index++)
{
printf("Number: ");
scanf("%d",&numbers[index]);
...
每次进入 for 循环时,你 numbers[index] 还没赋值,就参与比较,然后才赋值,这比较岂不是没有意义了。先把这个修正了。
for(index=1;numbers[index]!=numbers[index-1];index++)
{
printf("Number: ");
scanf("%d",&numbers[index]);
...
每次进入 for 循环时,你 numbers[index] 还没赋值,就参与比较,然后才赋值,这比较岂不是没有意义了。先把这个修正了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询