c语言程序纠错

#include<stdio.h>intmain(){intscore[3];inti,x,temp;for(i=0;i<4;i++);{Receivedata:scan... #include <stdio.h>
int main()
{
int score[3];
int i,x,temp;
for(i=0;i<4;i++);
{
Receive data:scanf("%d",&temp);
if(temp>120) printf("%d请输入正确分数\n",temp) goto Receive data;
score[i]+temp
}
x=score[1]+score[2]+score[3];
if(x<220) printf("%d此学生分数太低请重新输入\n",x)
if(score[1]<score[2]) if(score[2]<score[3]) printf("%d此学生英语最好",score[3]);
else if(score[2]>score[3]) printf("%d此学生数学最好",score[2]);
if(score[1]>score[2]) if(score[1]>score[3]) printf("%d此学生语文最好",score[1]);
else if(score[1]<score[3]) printf("%d此学生英语最好",score[3]);
if(score[1]=score[2]) if(score[1]>score[3]) printf("%d此学生语文最好",score[1]);
else if(score[1]<score[3]) printf("%d此学生英语最好",score[3]);
getch();
}
展开
 我来答
一块月饼
推荐于2016-01-06 · TA获得超过318个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:64.9万
展开全部

首先要注意格式。。

  1. goto语句设置的label设置有问题,中间不能有空格

  2. for循环写完for(;;)后 不要加 ;

  3. 第一个for语句想要循环3次却循环了4次

  4. score[i]+temp应该是想要将temp的值给score[i]吧。。

  5. if内的语句如果超过了一句,那么就要用 {   } 把if里的语句括起来,下面会有例子

  6. 漏了一些分号,把一些;打成了中文的;

  7. getchar(),不是getchar()

  8. 判断两个相等需要用 ==  而不是=

  9. goto最好少用 或者不用

  10. 数组只有在定义的时候是告诉计算机有多少个,而在使用单个元素时:

    比如说 定义一个整形数组a,有3个元素 int a[3];其中每个元素是a[0],a[1],a[2],而不是a[1],a[2],a[3]

  11. 使用int main()时,在程序最后要加上return 0;


下面是修改后的程序,如果对你有帮助,望采纳( ”//“之后为注释)

#include <stdio.h>
int main()
{
    int score[3];
    int i,x,temp;
    for(i=0;i<3;i++)//让循环进行3次
    {
Receive_data://用下划线连起来
scanf("%d",&temp);
if(temp>120)//if内超过一句需要用大括号({})括起来
{
    printf("请输入正确分数\n");//不要忘记分号
    goto Receive_data;
}
score[i]=temp;//赋值方式
    }
    x=score[0]+score[1]+score[2];//数组内元素的使用方式
    if(x<220) 
    {
printf("此学生分数太低请重新输入\n");
i=0;
goto Receive_data;
    }
    if(score[0]<score[1]) 
    {
if(score[1]<score[2])
    printf("%d此学生英语最好",score[2]);
        else if(score[1]>score[2])
    printf("%d此学生数学最好",score[1]);
    }
    if(score[0]>score[1])
    {
        if(score[0]>score[2]) 
            printf("%d此学生语文最好",score[0]);
        else if(score[0]<score[2]) 
    printf("%d此学生英语最好",score[2]);//分号必须是英文的
    }
    if(score[0]==score[1]) 
    {
if(score[0]>score[2])
    printf("%d此学生语文最好",score[0]);
        else if(score[0]<score[2]) 
    printf("%d此学生英语最好",score[2]);
    }
    getchar();//getchar()
    return 0;//int main()要返回一个值 return 0;
}
183525594
2014-09-30 · TA获得超过2922个赞
知道大有可为答主
回答量:3664
采纳率:58%
帮助的人:2039万
展开全部
score[i]+temp ------------> score[i]+=temp;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式