鱼C论坛

 找回密码
 立即注册
查看: 3867|回复: 4

求助!!不知道哪里错了!

[复制链接]
发表于 2012-6-28 20:47:33 | 显示全部楼层 |阅读模式
1鱼币
#include<stdio.h>
#include <stdlib.h>


struct mark
{
        int Chinese;
        int Math;
        int English;
}mark[100];

struct student
{
        char name[10];
        int number;
}student[100];
float mean(int n1,int n2,int n3)
{
        float result;
        result=(n1+n2+n3)/2;
        return result;
}

int main()

{//main
        int a,i,d,t1,g,po[4],k,b,h;
        int sum=0;
        float m,cxt;
        printf("-------------------欢迎来到小型学生成绩管理系统--------------------\n");
again:printf("进入系统-----------1\n");
          printf("退出---------------2\n");
          printf(">");
          scanf("%d",&a);
          if(a==1)
          {//1
                  printf("<<<<已进入>>>>\n");
                  printf("请输入你要管理的学生的个数:\n");
                  printf(">");
                  scanf("%d",&a);
                  printf("\n");
                  if(a<101)
                  {//2
                          for(i=0;i<a;i++)
                          {
                                  printf("NO%d\n",i+1);
                                  printf("姓名:");
                                  scanf("%s",&student[i].name);
                                  printf("学号:");
                                  scanf("%d",&student[i].number);
                                  printf("<<详细成绩>>\n");
                                  printf("语文:");
                                  scanf("%d",&mark[i].Chinese);
                                  printf("数学:");
                                  scanf("%d",&mark[i].Math);
                                  printf("英语:");
                                  scanf("%d",&mark[i].English);
                                  printf("\n");
                          }
                          system("cls");
                          
grand:printf("<<<<<请选择你的操作>>>>>\n");
          printf("(统计个人平均分----------3\n\n");
          printf("统计总平均分-------------4\n");
          printf("计算个人总分-------------5\n");
          printf("统计总分-----------------6\n");
          printf("\n");
          printf(">");
          scanf("%d",&d);
          
          if(d==3)
          {//3
                  for(t1=0;t1<a;t1++)
                  {
                          m=mean(mark[t1].Chinese,mark[t1].Math,mark[t1].English);
                          printf("%s三科的平均分为:%f\n",student[t1].name,m);
                          printf("\n");
                  }       
          }
          else if(d==4)
          {
                  for(g=0;g<a;g++)
                  {
                          sum=mark[g].Chinese+mark[g].Math+mark[g].English+sum;
                  }   
                  cxt=sum/a;
                  printf("总的平均分为:%f\n",cxt);
          }
          else if(d==5)
          {
                  
                  for(k=0;k<a;k++)
                  {
                          printf("%s的总分为:%d\n",student[k].name,mark[k].Chinese+mark[k].Math+mark[k].English);
                  }
          }
          else if(d==6)
          {
                  
                  for(h=0;h<;h++)
                  {
                          sum=mark[h].Chinese+mark[h].Math+mark[h].English+sum;
                  }
                  printf("全部的总分为:%d\n",sum);         
                  
          }
                  }          
                  else
                  {
                          printf("你输入了无效的数字!请从新输入!\n");//3>>>>
                          goto grand;
                  }
          }
          else
          {
                  printf("你输入的人数不符合!!!\n");//2>>>>
          }
          
}//1
else if(a==2)
{
                  printf("已退出....\n");
                  goto end;
}
else
{
                  printf("你输入的是无效的数字,请再次输入:\n");//1>>>>
                  goto again;   
}



end:return 0;


本人刚学几天..

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-28 21:07:26 | 显示全部楼层
是语法错误,还是执行错误,也不说一声。。。执行错误的话,是结果不正确,还是内存读写错误。。。。也不说,真的就是一大堆代码往那面一扔,说有错误。。。就不管三七二十一。。。我虽然不是版主,但是还是i想请LZ去看看论坛上面的公告。。。代码没有注释,对于新人可以的理解的。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-6-29 01:12:25 | 显示全部楼层
  1. #include<stdio.h>
  2. #include <stdlib.h>

  3. struct mark
  4. {
  5.          float  Chinese;                // 分数之内的 最好定义为 float 类型 你后面的函数基本都是 float 类型的
  6.          float Math;
  7.          float English;
  8. }mark[100];

  9. struct student
  10. {
  11.          char name[10];
  12.          int number;
  13. }student[100];

  14. float mean(float n1,float n2,float n3)       
  15. {
  16.          float result;
  17.          result=(n1+n2+n3)/2;                //resule 是 flost 类型  n1 n2 n3 是 int  类型 运算的时候 注意类型
  18.          return result;
  19. }

  20. int main()

  21. {//main
  22.          int a,i,d,t1,g,k,h;                //b 变量  和 po[4]没有用到不需要 定义了 编译会产生警告
  23.          float sum=0;                //这里 少了一个 ;
  24.          float m,cxt;
  25.          printf("-------------------欢迎来到小型学生成绩管理系统--------------------\n");
  26. again:                                                                       
  27.                    printf("进入系统-----------1\n");
  28.            printf("退出---------------2\n");
  29.            printf(">");
  30.            scanf("%d",&a);
  31.            if(a==1)
  32.            {//1
  33.                    printf("<<<<已进入>>>>\n");
  34.                    printf("请输入你要管理的学生的个数:\n");
  35.                    printf(">");
  36.                    scanf("%d",&a);
  37.                    printf("\n");
  38.                    if(a<101)
  39.                    {//2
  40.                            for(i=0;i<a;i++)
  41.                            {
  42.                                    printf("NO%d\n",i+1);
  43.                                    printf("姓名:");
  44.                                    scanf("%s",&student[i].name);
  45.                                    printf("学号:");
  46.                                    scanf("%d",&student[i].number);
  47.                                    printf("<<详细成绩>>\n");
  48.                                    printf("语文:");
  49.                                    scanf("%d",&mark[i].Chinese);
  50.                                    printf("数学:");
  51.                                    scanf("%d",&mark[i].Math);
  52.                                    printf("英语:");
  53.                                    scanf("%d",&mark[i].English);
  54.                                    printf("\n");
  55.                            }
  56.                            system("cls");
  57.                            
  58. grand:printf("<<<<<请选择你的操作>>>>>\n");
  59.            printf("(统计个人平均分----------3\n\n");
  60.            printf("统计总平均分-------------4\n");
  61.            printf("计算个人总分-------------5\n");
  62.            printf("统计总分-----------------6\n");
  63.            printf("\n");
  64.            printf(">");
  65.            scanf("%d",&d);
  66.            
  67.            if(d==3)                                // 像 这里 你可以改成 switch 语句来做 不更好点嘛 需要用这么多 else if 来完成吗
  68.            {//3
  69.                    for(t1=0;t1<a;t1++)
  70.                    {
  71.                           m=mean(mark[t1].Chinese,mark[t1].Math,mark[t1].English);
  72.                            printf("%s三科的平均分为:%f\n",student[t1].name,m);
  73.                            printf("\n");
  74.                    }        
  75.           }
  76.            else if(d==4)
  77.            {
  78.                    for(g=0;g<a;g++)
  79.                    {
  80.                            sum=mark[g].Chinese+mark[g].Math+mark[g].English+sum;
  81.                    }   
  82.                    cxt=sum/a;
  83.                    printf("总的平均分为:%f\n",cxt);
  84.            }
  85.            else if(d==5)
  86.            {
  87.                   
  88.                    for(k=0;k<a;k++)
  89.                    {
  90.                            printf("%s的总分为:%d\n",student[k].name,mark[k].Chinese+mark[k].Math+mark[k].English);
  91.                    }
  92.            }
  93.            else if(d==6)
  94.            {
  95.                            for(h=0;h<a;h++)                //  h<  什么 ??
  96.                    {
  97.                            sum=mark[h].Chinese+mark[h].Math+mark[h].English+sum;
  98.                    }
  99.                    printf("全部的总分为:%d\n",sum);         
  100.                   
  101.            }
  102.                    }         
  103.                    else
  104.                    {
  105.                            printf("你输入了无效的数字!请从新输入!\n");//3>>>>
  106.                            goto grand;
  107.                    }
  108.            }
  109.           else
  110.           {
  111.                    printf("你输入的人数不符合!!!\n");//2>>>>
  112.            }
  113.            
  114. }//1
  115. else if(a==2)                                // 这个else  if 有前面 对应的 else 吗?
  116. {
  117.                    printf("已退出....\n");
  118.                    goto end;
  119. }
  120. else                                //写这么多 else   和 else  if  你直接改用swith 语句吧
  121. {
  122.                    printf("你输入的是无效的数字,请再次输入:\n");//1>>>>
  123.                    goto again;   
  124. }


  125. end:
  126. return 0;
复制代码
你这程序写的好乱  就帮你找出了这些错误 你自己在去修正下吧  
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-6-29 10:50:04 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-6-29 13:23:44 | 显示全部楼层
谢谢了.我会改正的:D
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-13 23:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表