c 语言 无法解析的外部符号
发布网友
发布时间:2022-05-11 07:31
我来回答
共1个回答
热心网友
时间:2023-10-08 21:01
//#include <stdafx.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
struct students
{
int no;
char name[8];
float maths,en,ch;
double sum,ave;
}*stu;
struct students1
{
int no;
char name[8];
float maths,en,ch;
double sum,ave;
}*stu1;
int people_num;//用来记录人数 新加的
int menu_select() /*菜单函数*/
{
char c;
do
{
system("cls"); /*运行前清屏*/
printf("\t\t****Students' Grade Management System****\n"); /*菜单选择*/
printf("\t\t | 1. Input Records\Display All Records |\n");
printf("\t\t | 2. Sort |\n");
printf("\t\t | 0. Quit |\n");
printf("\t\t*****************************************\n");
printf("\t\t\tGive your Choice(0-2):");
c=getchar(); /*读入选择*/
}while(c<'0'||c>'2');
return(c - '0'); //返回选择(您的程序最后返回的是您输入的字符的ascii码减去0的ascii码的值 也就是说 如果选择0就返回0 如果不减返回的是0的ascii值 )
}
int Input(students stud[]) /*输入若干条记录*/ //* 结构名输入错误
{
int i=0,z=1,p;//z=1
double max=0;
char j;
for(;;)
{
i++;
printf("input no\n");
scanf("%d",&stu[i].no);
printf("input name\n");
scanf("%s",stu[i].name);
printf("input maths\n");
scanf("%f",&stu[i].maths);
printf("input en\n");
scanf("%f",&stu[i].en);
printf("input ch\n");
scanf("%f",&stu[i].ch);
stu[i].sum=stu[i].ch+stu[i].en+stu[i].maths;
stu[i].ave=stu[i].sum/3.0;
printf("是否继续(y/n)?\n");
scanf("%s",&j);
z++;
if(j=='n'||j=='N')
{
break;
}
}
people_num = z;
printf("\tno\tname\tmaths\ten\tch\tsum\tave\n");
for(i=1;i<z;i++)
{
printf("\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].maths,stu[i].en,stu[i].ch,stu[i].sum,stu[i].ave);
}
return i-1;//随便返回的值
}
int Sort(students stud[]) //*结构名输入错误
{
double max = 0;//*新定义的变量
for(int i=1;i<=people_num;i++) // * 新加一对括号
{
for(int p=i;p<=people_num-i+1;p++)
{
if(stu[i].ave<stu[p+1].ave)
{
max=stu[p+1].ave;
stu[p+1].ave=stu[i].ave;
stu[i].ave=max;
}
}
}
printf("排序后的平均分\n");
for(int i=1;i<people_num;i++)
{
printf("%.2f\n",stu[i].ave);
}
return max;
}
int main() /*主函数*/
{
int n=0;
for(;;)
{
switch(menu_select()) /*选择判断*/
{
case 1:
printf("\t\t\tInput Records\n"); /*输入若干条记录*/
n=Input(stu);
break;
case 2:
printf("\t\t\tSort\n");
Sort(stu); /*按平均分排序*/
printf("\t\t\tSort Suceessed!\n");
printf("\t\t\t");
system("pause"); /* 而“pause”这个系统命令的功能很简单,就是在命令行上输出一行类似于“Press any key to exit”的字,等待用户按一个键,然后返回。 */
getchar();
break;
}
}
}