|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
有哪位大佬帮忙看一下这个代码错在哪了吗?
显示的错误是undefined reference to "WinMain@16"?
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef struct{
char id[20]; //学号
char name[20]; //姓名
int score[3]; //课程成绩
int sum; //总分
int aver; //平均分
}Student;
typedef struct{
Student elem[MAXSIZE];
int last; //最后一个元素的
}SqList;
int Number(void)
{
int n;
printf("请输入学生的人数\n");
scanf("%d", &n);
return n;//返回学生人数
}
int findname(SqList *L,Student e) //按照姓名查找
{ /*用e返回L中第i个数据元素的值*/
int i;
for(i=0;i<L->last+1;i++)
{
if(!strcmp(L->elem[i].name,e.name)) //比较两个字符串是否相同
return i+1;
}
return 0;
}
int findid(SqList *L,Student e) //按照学号查找
{
int i;//用e返回L中第i个数据元素的值
for(i=0;i<L->last+1;i++)
{
if(!strcmp(L->elem[i].id,e.id)) //比较两个字符串是否相同
return i+1;
}
return 0;
}
void aevgrade(SqList *L)
{
int i,f,j = 0;
double sum1 = 0.0,sum2 = 0.0,sum3 = 0.0;
printf("(输入提示:语文请输入0\t数学请输入1\t英语请输入2)\n请输入需要查询的科目\n");
scanf("%d",&f);
switch(f){
case 0:for(i = 0;i < L->last;i++){
sum1 = sum1 + L->elem[i].score[0];j++;}
printf("语文平均成绩: %0.2f\n",sum1 / j);break;
case 1:for(i = 0;i < L->last;i++){
sum2 = sum2 + L->elem[i].score[1];j++;}
printf("数学平均成绩: %0.2f\n",sum2 / j);break;
case 2:for(i = 0;i < L->last;i++){
sum3 = sum3 + L->elem[i].score[2];j++;}
printf("英语平均成绩: %0.2f\n",sum3 / j);break;
}
}
void findscore(SqList *L)
{
int h,l,f;
printf("(提示:语文请输入0\t数学请输入1\t英语请输入2\t总分请输入3)\n请输入需要查询的科目\n");
scanf("%d",&f);
printf("请输入分数上限\n");
scanf("%d",&h);
printf("请输入分数下限\n");
scanf("%d",&l);
switch(f){
case 0:
case 1:
case 2:
for(int i=0;i<L->last;i++)
{
if(L->elem[i].score[f]<=h&&L->elem[i].score[f]>=l){
printf("学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");
printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\n", L->elem[i].id, L->elem[i].name, L->elem[i].score[0], L->elem[i].score[1], L->elem[i].score[2], L->elem[i].sum, L->elem[i].aver);
}
else{
printf("没有在此区间的学生!");
}
break;
case 3:
for(int i=0;i<L->last;i++)
{
if(L->elem[i].sum<=h&&L->elem[i].sum>=l){
printf("学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");
printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\n", L->elem[i].id, L->elem[i].name, L->elem[i].score[0], L->elem[i].score[1], L->elem[i].score[2], L->elem[i].sum, L->elem[i].aver);
}
else{
printf("没有在此区间的学生!");
}
}
break;}
}
void menu(){
printf("********************************************************************\n");
printf("*-------------------------1.信息输入;------------------------------*\n");
printf("*-------------------------2.信息输出;------------------------------*\n");
printf("*-------------------------3.按姓名查找;----------------------------*\n");
printf("*-------------------------4.按学号查找;----------------------------*\n");
printf("*-------------------------5.课程平均分数;--------------------------*\n");
printf("*-------------------------6.某段分数中的学生-----------------------*\n");
printf("*-------------------------7.退出系统-------------------------------*\n");
printf("********************************************************************\n");
printf("\n");
}
int main()
{
int i,x,temp,stemp,a;
SqList L;
Student e;
while(1)
{
menu();
printf("请选择1到7的操作:");
scanf("%d",&a);
printf("\n");
switch(a)
{
case 1:
x=Number();
for(i=0;i<x;i++)
{
printf("第%d位学生信息\n",i+1);
printf("\n");
printf("学号:");
scanf("%s",L.elem[i].id);
printf("姓名:");
scanf("%s",L.elem[i].name);
printf("语文:");
scanf("%d",&L.elem[i].score[0]);
printf("数学:");
scanf("%d",&L.elem[i].score[1]);
printf("英语:");
scanf("%d",&L.elem[i].score[2]);
printf("----------------------------------------\n");
L.elem[i].sum= L.elem[i].score[0] + L.elem[i].score[1] + L.elem[i].score[2];//总分
L.elem[i].aver = L.elem[i].sum / 3;//平均分
}
L.last=x;
printf("\n");
system("CLS");//清屏
break;
case 2:
printf("所有学生的成绩为:\n");
printf("学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");
for(i=0;i<L.last;i++)
{
printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\n",L.elem[i].id,L.elem[i].name,L.elem[i].score[0],L.elem[i].score[1],L.elem[i].score[2],L.elem[i].sum,L.elem[i].aver);
}
printf("\n");
system("PAUSE");//冻结屏幕
system("CLS");//清屏
break;
case 3:
printf("请输入你要查找的姓名:");
scanf("%s",e.name);
temp=findname(&L,e);
if(temp!=0){
printf("学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");
printf("%s\t%s\t %d\t %d\t %d\t%d\t %d\n",L.elem[temp-1].id,L.elem[temp-1].name,L.elem[temp-1].score[0],L.elem[temp-1].score[1],L.elem[temp-1].score[2],L.elem[temp-1].sum,L.elem[temp-1].aver);}
else{
printf("查找失败!\n");
}
system("PAUSE");//冻结屏幕
system("CLS");//清屏
break;
case 4:
printf("请输入你要查找的学号:");
scanf("%s",e.id);
stemp=findid(&L,e);
if(stemp!=0){
printf("学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");
printf("%s\t%s\t %d\t %d\t %d\t%d\t %d\n",L.elem[stemp-1].id,L.elem[stemp-1].name,L.elem[stemp-1].score[0],L.elem[stemp-1].score[1],L.elem[stemp-1].score[2],L.elem[stemp-1].sum,L.elem[stemp-1].aver);}
else{
printf("查找失败!\n");
}
system("PAUSE");//冻结屏幕
system("CLS");//清屏
break;
case 5:
aevgrade(&L);
system("PAUSE");//冻结屏幕
system("CLS");//清屏
break;
case 6:
findscore(&L);
system("PAUSE");//冻结屏幕
system("CLS");//清屏
break;
case 7:
{
printf("\n退出系统成功!欢迎下次使用!\n");
exit(0);
}
break;
}
}
return 0;
}}
第99行缺少一个花括号,第235行多了一个花括号 - #include<stdio.h>
- #include<string.h>
- #include<stdlib.h>
- #define MAXSIZE 100
- typedef struct {
- char id[20]; //学号
- char name[20]; //姓名
- int score[3]; //课程成绩
- int sum; //总分
- int aver; //平均分
- }Student;
- typedef struct {
- Student elem[MAXSIZE];
- int last; //最后一个元素的
- }SqList;
- int Number(void)
- {
- int n;
- printf("请输入学生的人数\n");
- scanf("%d", &n);
- return n;//返回学生人数
- }
- int findname(SqList *L, Student e) //按照姓名查找
- { /*用e返回L中第i个数据元素的值*/
- int i;
- for (i = 0;i<L->last + 1;i++)
- {
- if (!strcmp(L->elem[i].name, e.name)) //比较两个字符串是否相同
- return i + 1;
- }
- return 0;
- }
- int findid(SqList *L, Student e) //按照学号查找
- {
- int i;//用e返回L中第i个数据元素的值
- for (i = 0;i<L->last + 1;i++)
- {
- if (!strcmp(L->elem[i].id, e.id)) //比较两个字符串是否相同
- return i + 1;
- }
- return 0;
- }
- void aevgrade(SqList *L)
- {
- int i, f, j = 0;
- double sum1 = 0.0, sum2 = 0.0, sum3 = 0.0;
- printf("(输入提示:语文请输入0\t数学请输入1\t英语请输入2)\n请输入需要查询的科目\n");
- scanf("%d", &f);
- switch (f) {
- case 0:for (i = 0;i < L->last;i++) {
- sum1 = sum1 + L->elem[i].score[0];j++;
- }
- printf("语文平均成绩: %0.2f\n", sum1 / j);break;
- case 1:for (i = 0;i < L->last;i++) {
- sum2 = sum2 + L->elem[i].score[1];j++;
- }
- printf("数学平均成绩: %0.2f\n", sum2 / j);break;
- case 2:for (i = 0;i < L->last;i++) {
- sum3 = sum3 + L->elem[i].score[2];j++;
- }
- printf("英语平均成绩: %0.2f\n", sum3 / j);break;
- }
- }
- void findscore(SqList *L)
- {
- int h, l, f;
- printf("(提示:语文请输入0\t数学请输入1\t英语请输入2\t总分请输入3)\n请输入需要查询的科目\n");
- scanf("%d", &f);
- printf("请输入分数上限\n");
- scanf("%d", &h);
- printf("请输入分数下限\n");
- scanf("%d", &l);
- switch (f)
- {
- case 0:
- case 1:
- case 2:
- for (int i = 0;i < L->last;i++)
- {
- if (L->elem[i].score[f] <= h&&L->elem[i].score[f] >= l)
- {
- printf("学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");
- printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\n", L->elem[i].id, L->elem[i].name, L->elem[i].score[0], L->elem[i].score[1], L->elem[i].score[2], L->elem[i].sum, L->elem[i].aver);
- }
- else
- {
- printf("没有在此区间的学生!");
- }
- break;
- } // 缺少花括号
- case 3:
- for (int i = 0;i<L->last;i++)
- {
- if (L->elem[i].sum <= h&&L->elem[i].sum >= l)
- {
- printf("学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");
- printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\n", L->elem[i].id, L->elem[i].name, L->elem[i].score[0], L->elem[i].score[1], L->elem[i].score[2], L->elem[i].sum, L->elem[i].aver);
- }
- else
- {
- printf("没有在此区间的学生!");
- }
- }
- break;
- }
- }
- void menu(){
- printf("********************************************************************\n");
- printf("*-------------------------1.信息输入;------------------------------*\n");
- printf("*-------------------------2.信息输出;------------------------------*\n");
- printf("*-------------------------3.按姓名查找;----------------------------*\n");
- printf("*-------------------------4.按学号查找;----------------------------*\n");
- printf("*-------------------------5.课程平均分数;--------------------------*\n");
- printf("*-------------------------6.某段分数中的学生-----------------------*\n");
- printf("*-------------------------7.退出系统-------------------------------*\n");
- printf("********************************************************************\n");
- printf("\n");
- }
- int main()
- {
- int i, x, temp, stemp, a;
- SqList L;
- Student e;
- while (1)
- {
- menu();
- printf("请选择1到7的操作:");
- scanf("%d", &a);
- printf("\n");
- switch (a)
- {
- case 1:
- x = Number();
- for (i = 0;i<x;i++)
- {
- printf("第%d位学生信息\n", i + 1);
- printf("\n");
- printf("学号:");
- scanf("%s", L.elem[i].id);
- printf("姓名:");
- scanf("%s", L.elem[i].name);
- printf("语文:");
- scanf("%d", &L.elem[i].score[0]);
- printf("数学:");
- scanf("%d", &L.elem[i].score[1]);
- printf("英语:");
- scanf("%d", &L.elem[i].score[2]);
- printf("----------------------------------------\n");
- L.elem[i].sum = L.elem[i].score[0] + L.elem[i].score[1] + L.elem[i].score[2];//总分
- L.elem[i].aver = L.elem[i].sum / 3;//平均分
- }
- L.last = x;
- printf("\n");
- system("CLS");//清屏
- break;
- case 2:
- printf("所有学生的成绩为:\n");
- printf("学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");
- for (i = 0;i<L.last;i++)
- {
- printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\n", L.elem[i].id, L.elem[i].name, L.elem[i].score[0], L.elem[i].score[1], L.elem[i].score[2], L.elem[i].sum, L.elem[i].aver);
- }
- printf("\n");
- system("PAUSE");//冻结屏幕
- system("CLS");//清屏
- break;
- case 3:
- printf("请输入你要查找的姓名:");
- scanf("%s", e.name);
- temp = findname(&L, e);
- if (temp != 0) {
- printf("学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");
- printf("%s\t%s\t %d\t %d\t %d\t%d\t %d\n", L.elem[temp - 1].id, L.elem[temp - 1].name, L.elem[temp - 1].score[0], L.elem[temp - 1].score[1], L.elem[temp - 1].score[2], L.elem[temp - 1].sum, L.elem[temp - 1].aver);
- }
- else {
- printf("查找失败!\n");
- }
- system("PAUSE");//冻结屏幕
- system("CLS");//清屏
- break;
- case 4:
- printf("请输入你要查找的学号:");
- scanf("%s", e.id);
- stemp = findid(&L, e);
- if (stemp != 0) {
- printf("学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");
- printf("%s\t%s\t %d\t %d\t %d\t%d\t %d\n", L.elem[stemp - 1].id, L.elem[stemp - 1].name, L.elem[stemp - 1].score[0], L.elem[stemp - 1].score[1], L.elem[stemp - 1].score[2], L.elem[stemp - 1].sum, L.elem[stemp - 1].aver);
- }
- else {
- printf("查找失败!\n");
- }
- system("PAUSE");//冻结屏幕
- system("CLS");//清屏
- break;
- case 5:
- aevgrade(&L);
- system("PAUSE");//冻结屏幕
- system("CLS");//清屏
- break;
- case 6:
- findscore(&L);
- system("PAUSE");//冻结屏幕
- system("CLS");//清屏
- break;
- case 7:
- {
- printf("\n退出系统成功!欢迎下次使用!\n");
- exit(0);
- }
- break;
- }
- /* } */ // 多了一个花括号
- return 0;
- }
- }
复制代码
|
|