| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 438 人关注过本帖
标题:可以运行,但界面的第四个选项——排序,不能进行,帮忙看下!!!谢谢
只看楼主 加入收藏
chenzhibin07
Rank: 2
等 级:论坛游民
帖 子:57
专家分:64
注 册:2013-4-10
结帖率:91.67%
收藏
已结贴  问题点数:15 回复次数:1 
可以运行,但界面的第四个选项——排序,不能进行,帮忙看下!!!谢谢
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define M 3

void input(long sno[],char sname[][20],int sage[],float cs[],int N)
{int i;
 printf("请输入%d个学生的信息.\n",N);
 for(i=0;i<N;i++)
 {printf("\n输入第%d个学生的\n",i+1);
  printf("学号:");
  scanf("%ld",&sno[i]);
  getchar();
  printf("姓名:");
  gets(sname[i]);
  printf("年龄:");
  scanf("%d",&sage[i]);
  getchar();
  printf("成绩");
  scanf("%f",&cs[i]);
  getchar();
}
}
void output(long sno[],char sname[][20],int sage[],float cs[],int N)
{int i;
 printf("\n%d个学生的基本信息为\n",N);
for(i=0;i<N;i++)  
{ printf("%-10d",sno[i]);
  printf("%-16s",sname[i]);
  printf("%-4d",sage[i]);
  printf("%6.0f",cs[i]);
  printf("\n");
 }
}

void anxuehao(long sno[],char sname[][20],int sage[],float cs[],int N)
{int i;
 long snol;
 printf("请输入您要查找的学号:\n");
 scanf("%ld",&snol);
 for(i=0;i<N;i++)
 {if(sno[i]==snol)
     break;}      
 if(i<N)
 {printf("学号为%ld的学生的基本信息为:\n");
  printf("%-10d",sno[i]);
  printf("%-16s",sname[i]);
  printf("%-4d",sage[i]);
  printf("%-6.0f",cs[i]);
  printf("\n");
  }
 else
  printf("您输入的学号不存在!\n");  
}
void anxingming(long sno[],char sname[][20],int sage[],float cs[],int N)
{int i;
 char sname1[20];
 printf("请输入要查找学生的姓名:\n");
 gets(sname1);
 for(i=0;i<N;i++)
 { if(sname1==sname[i])
      break;
 }
if(i<N)
{ printf("姓名为%s的学生的基本信息:\n");
  printf("%-10d",sno[i]);
  printf("%-16s",sname[i]);
  printf("%-4d",sage[i]);
  printf("%-6.0f",cs[i]);
  printf("\n");}
 else
  printf("您输入的姓名不存在!\n");  
  }   
void paixu(long sno[],char sname[][20],int sage[],float cs[],int N)
{int i,j;int tsage;float tcs;char tsname[20];long tsno;
 for(i=0;i<N-1;i++)
  {for(j=i+1;j<N;j++)
     {if(cs[i]<cs[j])
        tsno=sno[i];
        sno[i]=sno[j];
        sno[j]=tsno;
         tcs=cs[i];
         cs[i]=cs[j];
         cs[j]=tcs;
        
        strcpy(tsname,sname[i]);
        strcpy(sname[i],sname[j]);
        strcpy(sname[j],tsname);
        tsage=sage[i];
        sage[i]=sage[j];
        sage[j]=tsage;  
      }  
  }
 printf("成绩排序表:\n");
 for(i=0;i<N;i++)
   printf("%-10d",sno[i]);
   printf("%-16s",sname[i]);
   printf("%-6.0f",cs[i]);
}   

void total(long sno[],char sname[][20],int sage[],float cs[],int N)
{int i,j=0;
  printf("成绩为优秀的学生:\n");
  for(i=0;i<N;i++)
   if(cs[i]>=85)
      printf("%s  ",sname[i]);
     
  printf("\n成绩为良好的学生:\n");
  for(i=0;i<N;i++)
   if(cs[i]>=70&&cs[i]<85)
      printf("%s  ",sname[i]);
        
  printf("\n成绩为合格的学生:\n");
  for(i=0;i<N;i++)
   if(cs[i]>=60&&cs[i]<70)
      printf("%s  ",sname[i]);
   
  printf("\n成绩为不及格的学生:\n");
  for(i=0;i<N;i++)
   if(cs[i]>=0&&cs[i]<60)
      printf("%s  ",sname[i]);   
     }                                             
void jiemian()
{printf("\t\t*************************************\n");
 printf("\t\t*          欢迎使用学籍管理系统           *\n");
 printf("\t\t1.输入学生的基本信息     2.输出学生的信息  *\n");
 printf("\t\t3.查找学生的基本的信息   4.排序       *\n");
 printf("\t\t5.统计                   0.退出       *\n");
 printf("\t\t***********************************\n");
 printf("\t\t 请输入0~5: ");
}
void chazhao()
{  printf("\t\t******************************************************\n");
   printf("\t\t*            欢迎使用查找系统                 *\n");
   printf("\t\t*1.按学号查找             *\n");
   printf("\t\t*2.按姓名查找        *\n");
   printf("\t\t*3.返回上一级             *\n");
   printf("\t\t****************************************************\n");
   printf("\t\t请输入0~2: ");
}  

void chazhaoC(long sno[],char sname[][20],int sage[],float cs[],int N)
{int m;
 while(1)
 {scanf("%d",&m);
 switch(m)
 { case 1:
        anxuehao(sno,sname,sage,cs,N);
        jiemian();
        break;
   case 2:
        anxingming(sno,sname,sage,cs,N);
        jiemian();
        break;
   case 3:
         break;
 }
 if(m==0)
   break;
 }
 jiemian();
}
void choice(long sno[],char sname[][20],int sage[],float cs[],int N)
{int m;
 while (1)
 { scanf("%d",&m);
  switch(m)
  { case 1:
         input(sno,sname,sage,cs,N);
         system("cls");
         jiemian();break;
    case 2:
         output(sno,sname,sage,cs,N);
         printf("\n按任意键回到界面:");
         getch();system("cls");
         jiemian();break;
    case 3:
         chazhao();
         chazhaoC(sno,sname,sage,cs,N);
         break;
    case 4:
         paixu(sno,sname,sage,cs,N);
         break;
    case 5:
         total(sno,sname,sage,cs,N);
         jiemian();
         break;
    case 0:
         exit(1);
  }
 }
}   
   
int main(int argc, char *argv[])
{
 long sno[M];
char sname[M][20];
int sage[M];
float cs[M];
int  i,j;
jiemian();
choice(sno,sname,sage,cs,M);

  system("PAUSE");   
  return 0;
}
搜索更多相关主题的帖子: long include 
2013-04-19 09:59
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:15 
错误有两个,
1、 getch();这个函数的头文件没有;#include <conio.h>
2、循环输出排序结果的时候,你没有括号:
for(i=0;i<N;i++)
{printf("%-10d\n",sno[i]);
   printf("%-16s\n",sname[i]);
   printf("%-6.0f\n",cs[i]);}

整个程序:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define M 3

void input(long sno[],char sname[][20],int sage[],float cs[],int N)
{int i;
printf("请输入%d个学生的信息.\n",N);
for(i=0;i<N;i++)
{printf("\n输入第%d个学生的\n",i+1);
  printf("学号:");
  scanf("%ld",&sno[i]);
  getchar();
  printf("姓名:");
  gets(sname[i]);
  printf("年龄:");
  scanf("%d",&sage[i]);
  getchar();
  printf("成绩");
  scanf("%f",&cs[i]);
  getchar();
}
}
void output(long sno[],char sname[][20],int sage[],float cs[],int N)
{int i;
printf("\n%d个学生的基本信息为\n",N);
for(i=0;i<N;i++)  
{ printf("%-10d",sno[i]);
  printf("%-16s",sname[i]);
  printf("%-4d",sage[i]);
  printf("%6.0f",cs[i]);
  printf("\n");
}
}

void anxuehao(long sno[],char sname[][20],int sage[],float cs[],int N)
{int i;
long snol;
printf("请输入您要查找的学号:\n");
scanf("%ld",&snol);
for(i=0;i<N;i++)
{if(sno[i]==snol)
     break;}      
if(i<N)
{printf("学号为%ld的学生的基本信息为:\n");
  printf("%-10d",sno[i]);
  printf("%-16s",sname[i]);
  printf("%-4d",sage[i]);
  printf("%-6.0f",cs[i]);
  printf("\n");
  }
else
  printf("您输入的学号不存在!\n");  
}
void anxingming(long sno[],char sname[][20],int sage[],float cs[],int N)
{int i;
char sname1[20];
printf("请输入要查找学生的姓名:\n");
gets(sname1);
for(i=0;i<N;i++)
{ if(sname1==sname[i])
      break;
}
if(i<N)
{ printf("姓名为%s的学生的基本信息:\n");
  printf("%-10d",sno[i]);
  printf("%-16s",sname[i]);
  printf("%-4d",sage[i]);
  printf("%-6.0f",cs[i]);
  printf("\n");}
else
  printf("您输入的姓名不存在!\n");  
  }   
void paixu(long sno[],char sname[][20],int sage[],float cs[],int N)
{int i,j;int tsage;float tcs;char tsname[20];long tsno;
for(i=0;i<N-1;i++)
  {for(j=i+1;j<N;j++)
     {if(cs[i]<cs[j])
        tsno=sno[i];
        sno[i]=sno[j];
        sno[j]=tsno;
         tcs=cs[i];
         cs[i]=cs[j];
         cs[j]=tcs;
        
        strcpy(tsname,sname[i]);
        strcpy(sname[i],sname[j]);
        strcpy(sname[j],tsname);
        tsage=sage[i];
        sage[i]=sage[j];
        sage[j]=tsage;  
      }  
  }
printf("成绩排序表:\n");
for(i=0;i<N;i++)
{printf("%-10d\n",sno[i]);
   printf("%-16s\n",sname[i]);
   printf("%-6.0f\n",cs[i]);}
}   

void total(long sno[],char sname[][20],int sage[],float cs[],int N)
{int i,j=0;
  printf("成绩为优秀的学生:\n");
  for(i=0;i<N;i++)
   if(cs[i]>=85)
      printf("%s  ",sname[i]);
     
  printf("\n成绩为良好的学生:\n");
  for(i=0;i<N;i++)
   if(cs[i]>=70&&cs[i]<85)
      printf("%s  ",sname[i]);
        
  printf("\n成绩为合格的学生:\n");
  for(i=0;i<N;i++)
   if(cs[i]>=60&&cs[i]<70)
      printf("%s  ",sname[i]);
   
  printf("\n成绩为不及格的学生:\n");
  for(i=0;i<N;i++)
   if(cs[i]>=0&&cs[i]<60)
      printf("%s  ",sname[i]);   
     }                                             
void jiemian()
{printf("\t\t*************************************\n");
printf("\t\t*          欢迎使用学籍管理系统           *\n");
printf("\t\t1.输入学生的基本信息     2.输出学生的信息  *\n");
printf("\t\t3.查找学生的基本的信息   4.排序       *\n");
printf("\t\t5.统计                   0.退出       *\n");
printf("\t\t***********************************\n");
printf("\t\t 请输入0~5: ");
}
void chazhao()
{  printf("\t\t******************************************************\n");
   printf("\t\t*            欢迎使用查找系统                 *\n");
   printf("\t\t*1.按学号查找             *\n");
   printf("\t\t*2.按姓名查找        *\n");
   printf("\t\t*3.返回上一级             *\n");
   printf("\t\t****************************************************\n");
   printf("\t\t请输入0~2: ");
}  

void chazhaoC(long sno[],char sname[][20],int sage[],float cs[],int N)
{int m;
while(1)
{scanf("%d",&m);
switch(m)
{ case 1:
        anxuehao(sno,sname,sage,cs,N);
        jiemian();
        break;
   case 2:
        anxingming(sno,sname,sage,cs,N);
        jiemian();
        break;
   case 3:
         break;
}
if(m==0)
   break;
}
jiemian();
}
void choice(long sno[],char sname[][20],int sage[],float cs[],int N)
{int m;
while (1)
{ scanf("%d",&m);
  switch(m)
  { case 1:
         input(sno,sname,sage,cs,N);
         system("cls");
         jiemian();break;
    case 2:
         output(sno,sname,sage,cs,N);
         printf("\n按任意键回到界面:");
         getch();system("cls");
         jiemian();break;
    case 3:
         chazhao();
         chazhaoC(sno,sname,sage,cs,N);
         break;
    case 4:
         paixu(sno,sname,sage,cs,N);
         break;
    case 5:
         total(sno,sname,sage,cs,N);
         jiemian();
         break;
    case 0:
         exit(1);
  }
}
}   
   
int main(int argc, char *argv[])
{
long sno[M];
char sname[M][20];
int sage[M];
float cs[M];
int  i,j;
jiemian();
choice(sno,sname,sage,cs,M);

  system("PAUSE");   
  return 0;
}

Maybe
2013-04-19 11:58
快速回复:可以运行,但界面的第四个选项——排序,不能进行,帮忙看下!!!谢谢 ...
数据加载中...
 
   



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

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