| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 470 人关注过本帖
标题:帮忙看看。。为什么不能运行程序。指出下需要修改的地方
只看楼主 加入收藏
hanpenglee
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-10-25
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:5 
帮忙看看。。为什么不能运行程序。指出下需要修改的地方
#include<stdio.h>
#define N 20
struct student
{
    char num[10];  /*学号*/
    char name[20]; /*姓名*/
    char sex[4]; /*性别*/
    int cl; /*班别*/
    int yw;/*语文成绩*/
    int sx;/*数学成绩*/
    int yy;/*英语成绩*/
    float sum;/*总分*/
    float aver;/*平均分*/
};
int count=0;   /*记录输入学生人数*/
struct student stu[N];  /*全局数组*/

/*输入数据*/
void intput()
{
    int i;
  for(i=1;i<=50;i++)
  {
      printf("请输入第%d学生\n学号\t姓名\t性别\t班级\t语文成绩\t数学成绩\t英语成绩\t\n",i);
  scanf("%s%s%s%d%d%d%d",stu[i].num,stu[i].name,stu[i].sex,&stu[i].cl,&stu[i].yw,&stu[i].sx,&stu[i].yy);
  count++;
  }
}
/*修改数据*/
void modi()
{
int i,flag=0,n;
char num[10];
printf("请输入需要修改信息的学生的学号:\n");
scanf("%s",num);
if(count==0)
{
    printf("暂无任何学生信息\n");
    return;
}
for(i=1;i<=count;i++)
if(strcmp(num,stu[i].num)==0)
{flag=1;     
 break;
}
if(flag)
{
    printf("学号\t姓名\t性别\t班级\t语文成绩\t数学成绩\t英语成绩\t\n");
    printf("%s\t%s\t%s\t%d\t%d\t%d\t%d\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].cl,
                                      stu[i].yw,stu[i].sx,stu[i].yy);
    printf("1.学号\t2.姓名\t3.性别\t4.班级\t\n5.语文成绩\t6.数学成绩\t7.英语成绩\t8.退出修改\n");
    scanf("请输入需要修改的项目<1~8>",&n);
    while(n<=1&&n<=8)
    {
        switch(n)
    {
    case 1:
        printf("请输入该同学新学号: ");
        scanf("%s",stu[i].num);
        break;
    case 2:
        printf("请输入该同学新姓名: ");
        scanf("%s",stu[i].name);
        break;
    case 3:
        printf("请输入该同学新性别: ");
        scanf("%s",stu[i].sex);
        break;
    case 4:
        printf("请输入该同学新班级: ");
        scanf("%s",stu[i].cl);
        break;
    case 5:
        printf("请输入该同学新语文成绩: ");
        scanf("%d",stu[i].yw);
        break;
    case 6:
        printf("请输入该同学新数学成绩: ");
        scanf("%d",stu[i].sx);
        break;
    case 7:
        printf("请输入该同学新英语成绩: ");
        scanf("%d",stu[i].yy);
        break;
    case 8:
        return main();
    }
}
}
else
printf("无此学生\n");
}

/*按学号排序*/
void px()
{
    struct student s;
int i,j,min;

for(i=0;1<count-1;i++)
{ min=i;
for(j=i+1;j<count;j++)
if(strcmp(stu[min].num,stu[j].num)>0) min=j;
if(min!=i)
{s=stu[i];stu[i]=stu[min];stu[min]=s;}
}
printf("\n排序成功,可用输出查看结果!\n\n");
}

/*查询学生信息*/
void cx()
{   char num[10];
int i,flag=0;
    printf("请输入需要修改信息的学生的学号:\n");
scanf("%s",num);
if(count==0)
{
    printf("暂无任何学生信息\n");
    return;
}
for(i=1;i<=count;i++)
if(strcmp(num,stu[i].num)==0)
{
    flag=1;        
 break;
}
if(flag)
{
    printf("学号\t姓名\t性别\t班级\t语文成绩\t数学成绩\t英语成绩\t\n");
    printf("%s\t%s\t%s\t%d\t%d\t%d\t%d\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].cl,
                                      stu[i].yw,stu[i].sx,stu[i].yy);
}

/*平均分*/
void pj()
{
    int i;
    printf("学号\t姓名\t平均分\t\n");
    for(i=0;i<count;i++)
    {   stu[i].sum=stu[i].yw+stu[i].sx+stu[i].yy
        stu[i].aver=stu[i].sum/3;
    printf("%s\t%s\t",stu[i].num,stu[i].name,stu[i].aver);
    }
}

/*不及格学生*/
void fail()
{
    int i;
    for(i=0;i<count;i++)
        if(stu[i].yw<60||stu[i].sx<60||stu[i].yy<60)
        {printf("有不及格科目的学生是:");
        printf("学号\t姓名\t性别\t班级\t语文成绩\t数学成绩\t英语成绩\t\n");
        printf("%s\t%s\t%s\t%d\t%d\t%d\t%d\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].cl,stu[i].yw,stu[i].sx,stu[i].yy);
        }
}

/*处理数据*/
void handle()
{
int i,n,a;
    printf("1.按学号排序\t2.查询\t\n3.统计\t4.返回菜单\n");
scanf("请选择具体的处理内容:",&n);
switch(n)
{
case 1:
    px();
    break;
case 2:
    cx();
    break;
case 3:
    printf("1.统计平均分/t2.统计不及格学生信息/t3.返回\n");
    switch(a)
    {
    case 1:
        pj();
        break;
    case 2:
        fail();
        break;
    case 3:
        return;
    }
    break;
case 4:
    return main();
}
}
/*输出数据*/
void output()
{
int i,j;
printf("学号\t姓名\t性别\t班级\t语文成绩\t数学成绩\t英语成绩\t\n");
  for(i=1;i<=50;i++)
  {
      printf("%s\t%s\t%s\t%d\t%d\t%d\t%d\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].cl,stu[i].yw,stu[i].sx,stu[i].yy);
  }
}

void main()
{
    int n;
    printf("***********************************************************************\n");
    printf("1:输入数据\t2:修改数据\t3:处理数据\t\n4.输出数据\t5:退出系统\n");
    printf("***********************************************************************\n");
    printf("请选择需要进行的操作<1~5>:");
    scanf("%d",&n);
    while(n<=1&&n<=5)
    switch(n)
    {
    case 1:
        intput();
        break;
    case 2:
        modi();
        break;
    case 3:
        handle();
        break;
    case 4:
        output();
        break;
    case 5:
        printf("谢谢使用\n");
          break;
    }

}
搜索更多相关主题的帖子: 运行程序 英语成绩 include count 记录 
2013-12-07 17:16
hanpenglee
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-10-25
收藏
得分:0 
还有。。return的用法真的不大懂。。return如果后面不加东西是返回到哪里?
2013-12-07 17:19
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:5 
return main();   ???  你想表达什么?

return 你可以看做是一个函数向上级函数(或者调用者)返回

return后面什么都不加,就是退出此函数

三十年河东,三十年河西,莫欺少年穷!
2013-12-07 17:49
hanpenglee
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-10-25
收藏
得分:0 
回复 3楼 韶志
我想回到主函数。。。应该怎么写才对。。
2013-12-07 19:13
hanpenglee
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-10-25
收藏
得分:0 
C:\Documents and Settings\Administrator\桌面\综合实验2\Cpp1.cpp(42) : error C2065: 'strcmp' : undeclared identifier
C:\Documents and Settings\Administrator\桌面\综合实验2\Cpp1.cpp(136) : error C2601: 'pj' : local function definitions are illegal
C:\Documents and Settings\Administrator\桌面\综合实验2\Cpp1.cpp(148) : error C2601: 'fail' : local function definitions are illegal
C:\Documents and Settings\Administrator\桌面\综合实验2\Cpp1.cpp(161) : error C2601: 'handle' : local function definitions are illegal
C:\Documents and Settings\Administrator\桌面\综合实验2\Cpp1.cpp(193) : error C2601: 'output' : local function definitions are illegal
C:\Documents and Settings\Administrator\桌面\综合实验2\Cpp1.cpp(203) : error C2601: 'main' : local function definitions are illegal
C:\Documents and Settings\Administrator\桌面\综合实验2\Cpp1.cpp(231) : fatal error C1004: unexpected end of file found


错误全都一个样。。看不懂~~~~~求解释。。
2013-12-07 19:58
东坡1号
Rank: 1
等 级:新手上路
帖 子:1
专家分:5
注 册:2013-10-15
收藏
得分:5 
回到主函数  直接就是   return; /* 表示返回主函数时不返回值*/
                        return i;  /* 表示返回主函数事返回数值i,此时i有定值,或直接return 8; 表返回8*/
2013-12-07 20:00
快速回复:帮忙看看。。为什么不能运行程序。指出下需要修改的地方
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018432 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved