| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 393 人关注过本帖
标题:大神们,帮我看看这个程序出的问题,提前谢谢!
只看楼主 加入收藏
Tooker
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-10-12
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:3 
大神们,帮我看看这个程序出的问题,提前谢谢!
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define MAXSIZE 100
#define OK 1
#define ERROR 0
#define MAXLEN 20

typedef struct
{
  int num[MAXLEN];
  char name[MAXLEN];
  int socre;
  int classes;
}ElemType;

typedef struct
{
 ElemType *elem;
 int last;
 int listsize;
}SqList;

 ListInit(SqList *L)
{
 L->elem=(ElemType *)malloc(sizeof(ElemType));
 L->last=0;
 L->listsize=MAXSIZE;
 return OK;
}

void ReadIn(ElemType *e)
{
 printf("输入学号:");
scanf("%d",e->num);
 printf("输入姓名:");
scanf("%s",e->name);
 printf("输入成绩:");
scanf("%d",&e->socre);
 printf("输入年级:");
scanf("%d",&e->classes);
}

 ListInsert(SqList *L,int pos,ElemType e)
{
ElemType *p,*q;
 if(pos<1||pos>L->last+1)
 return ERROR;
 p=&L->elem[L->last];
 q=&L->elem[pos-1];
 for(;p>=q;--p)
 *(p+1)=*p;
 *q=e;
 ++L->last;
 return OK;
}

 void Print(SqList L)
{ int i;
 for(i=0;i<L.last;++i)                    
 {printf("学号:%d\t",L.elem[i].num);
 printf("姓名:%s\t",L.elem[i].name);
 printf("成绩:%d\t",L.elem[i].socre);
 printf("年级:%d\t",L.elem[i].classes);
 printf("\n");
 }
}

void Sort(SqList *L  )
{int i,j;
 ElemType t;
 for(i=0;i<L->last-1;++i)
 for(j=0;j<L->last-i-1;++j)
 if(L->elem[j].socre>L->elem[j+1].socre)
 {t=L->elem[j];

 L->elem[j]=L->elem[j+1];
 L->elem[j+1]=t;
 }
 int a;
 for(a=0;a<L->last;++a)                    
 {
 printf("学号:%d\t",L->elem[a].num);
 printf("姓名:%s\t",L->elem[a].name);
 printf("成绩:%d\t",L->elem[a].socre);
 printf("年级:%d\t",L->elem[a].classes);
 printf("\n");
 }

}

int Find(SqList *L , int  *b)
{
 printf("请输入你想查找的学生学号:");
 scanf("%c",*b);
 int i=0;
 while((i<=L->last)&&(L->elem[i].num)!=(*b))
  i++;
 if(i<=L->last)
  return(i+1);
 else
  return(-1);
  {
 printf("学号:%d\t",L->elem[i].num);
 printf("姓名:%s\t",L->elem[i].name);
 printf("成绩:%d\t",L->elem[i].socre);
 printf("年级:%d\t",L->elem[i].classes);
 printf("\n");
 }

}

void main()
{SqList L;

 int key,len;
 int b;
 char a;
 ElemType e;
 ListInit(&L);
  printf("********************************学生管理系统***********************************\n");
  printf("是否进入学生管理系统?(Y/N): \n");
 a=getchar();
 if(a=='Y'||a=='y')
 {do{
printf("∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞\n");
 printf("********************************(1):输入成绩***********************************\n");

printf("\n");
 printf("********************************(2):成绩排序***********************************\n");
 printf("\n");
 printf("********************************(3):显示所有成绩*******************************\n");
 printf("\n");
  printf("*******************************(4):按学号查找学生*****************************\n");
 printf("\n");
 printf("********************************(5):退出***************************************\n");
 printf("\n");
printf("∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞\n");
printf("\n");
 scanf("%d",&key);
 switch(key)
 {
 case 1 :ReadIn(&e);
 len=L.last;
 ListInsert(&L,++len,e);
 break;
 case 2 :Sort(&L);break;
 case 3 :Print(L);break;
 case 4 :Find(&L,&b);break;
 case 5:exit(0);
 default:printf("Error\n");break;
 }
 }while(1);
 }
 else
  printf("不能进入学生管理系统!\n");
 
}




搜索更多相关主题的帖子: classes include return 
2013-12-13 16:31
Tooker
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-10-12
收藏
得分:0 
问题在Find函数中
2013-12-13 16:32
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:10 
程序代码:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define MAXSIZE 100
#define OK 1
#define ERROR 0
#define MAXLEN 20

typedef struct
{
  int num;             // 学号为什么用数组, 难道一个人有很多个学号?
  char name[MAXLEN];
  int socre;
  int classes;
}ElemType;

typedef struct
{
ElemType *elem;
int last;
int listsize;
}SqList;

ListInit(SqList *L)          // 这里函数头要回返回值类型
{
L->elem=(ElemType *)malloc(sizeof(ElemType));
L->last=0;
L->listsize=MAXSIZE;
return OK;
}

void ReadIn(ElemType *e)
{
printf("输入学号:");
scanf("%d",&e->num);   // 1.
getchar();         // 2.
printf("输入姓名:");
scanf("%s",e->name);
printf("输入成绩:");
scanf("%d",&e->socre);
printf("输入年级:");
scanf("%d",&e->classes);
}

ListInsert(SqList *L,int pos,ElemType e)        //
{
ElemType *p,*q;
if(pos<1||pos>L->last+1)
return ERROR;
p=&L->elem[L->last];
q=&L->elem[pos-1];
for(;p>=q;--p)
*(p+1)=*p;
*q=e;
++L->last;
return OK;
}

void Print(SqList L)
{ int i;
for(i=0;ilast-1;++i)
for(j=0;jlast-i-1;++j)
if(L->elem[j].socre>L->elem[j+1].socre)
{t=L->elem[j]; 

L->elem[j]=L->elem[j+1];
L->elem[j+1]=t;
}
int a;
for(a=0;alast;++a)                   
{
printf("学号:%d\t",L->elem[a].num);
printf("姓名:%s\t",L->elem[a].name);
printf("成绩:%d\t",L->elem[a].socre);
printf("年级:%d\t",L->elem[a].classes);
printf("\n");
}

}

int Find(SqList *L , int  *b)
{
printf("请输入你想查找的学生学号:");
scanf("%c",*b);
int i=0;
while((i<=L->last)&&(L->elem[i].num)!=(*b))
  i++;
if(i<=L->last)
  return(i+1);
else
  return(-1);
  {
printf("学号:%d\t",L->elem[i].num);
printf("姓名:%s\t",L->elem[i].name);
printf("成绩:%d\t",L->elem[i].socre);
printf("年级:%d\t",L->elem[i].classes);
printf("\n");
}

}

void main()
{SqList L;

int key,len;
int b;
char a;
ElemType e;
ListInit(&L);
  printf("********************************学生管理系统***********************************\n");
  printf("是否进入学生管理系统?(Y/N): \n");
a=getchar();
if(a=='Y'||a=='y')
{do{
printf("∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞\n");
printf("********************************(1):输入成绩***********************************\n");

printf("\n");
printf("********************************(2):成绩排序***********************************\n");
printf("\n");
printf("********************************(3):显示所有成绩*******************************\n");
printf("\n");
  printf("*******************************(4):按学号查找学生*****************************\n");
printf("\n");
printf("********************************(5):退出***************************************\n");
printf("\n");
printf("∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞\n");
printf("\n");
scanf("%d",&key);
switch(key)
{
case 1 :ReadIn(&e);
len=L.last;             
ListInsert(&L,++len,e);
break;
case 2 :Sort(&L);break;
case 3 :Print(L);break;
case 4 :Find(&L,&b);break;
case 5:exit(0);
default:printf("Error\n");break;
}
}while(1);
}
else
  printf("不能进入学生管理系统!\n");

}


2013-12-13 17:37
Tooker
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-10-12
收藏
得分:0 
回复 3楼 pangshch
你说的问题我改了后还是运行不出来find函数的内容啊?
2013-12-13 21:33
快速回复:大神们,帮我看看这个程序出的问题,提前谢谢!
数据加载中...
 
   



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

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