|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
}
}
|
|