编写程序,定义一个存储学生信息的结构类型struct Student
学生信息包括学号,姓名,3门成绩,平均成绩等。还定义了三个函数。我编的程序没有错误,但是运行的时候就不对。#include<stdio.h>structStudent{i...
学生信息包括学号,姓名,3门成绩,平均成绩等。还定义了三个函数。我编的程序没有错误,但是运行的时候就不对。
#include <stdio.h>
struct Student
{
int ID;
char Name[20];
double Score[3];
double Average;
};
void Input(struct Student *pa,int n)
{
int i,j;
double sum=0;
do
{
printf("please input the number of students:");
scanf("%d",&n);
}while (n<=0 || n>10);
printf("please input student's ID,name and score:\n");
for (i=0;i<n;i++)
{
scanf("%d%s",&pa[i].ID,&pa[i].Name);
for (j=0;j<3;j++)
{
scanf("%lf",&pa[i].Score[j]);
sum+=pa[i].Score[j];
}
pa[i].Average=sum/3;
sum=0;
}
}
void Sort(struct Student *pa,int n)
{
int i,k,index;
double t;
for (i=0;i<n-1;i++)
{
index=i;
for (k=i+1;k<n;k++)
{
if (pa[k].Average<pa[index].Average)
index=k;
if (index!=i)
{
t=pa[index].Average;
pa[index].Average=pa[i].Average;
pa[i].Average=t;
}
}
}
}
void Output( const struct Student *pa,int n)
{
int i,j;
for (i=0;i<n;i++)
{
printf("学号=%4d,姓名=%-8s,成绩:",pa[i].ID,pa[i].Name);
for (j=0;j<3;j++)
printf("%5.2f",pa[i].Score[j]);
printf("平均成绩=%5.2f\n",pa[i].Average);
}
}
int main()
{
struct Student st[10];
int i,j,m=0;
int num;
Input(st,num);
for (i=0;i<num;i++)
{
for (j=0;j<3;j++)
{
if (st[i].Score[j]<60)
{
printf("%4d%-8s%d不及格!\n",st[i].ID,st[i].Name,j);
m++;
}
}
if (!m)
printf("全部学生都及格。\n");
}
Sort(st,num);
Output(st,num);
return 0;
} 展开
#include <stdio.h>
struct Student
{
int ID;
char Name[20];
double Score[3];
double Average;
};
void Input(struct Student *pa,int n)
{
int i,j;
double sum=0;
do
{
printf("please input the number of students:");
scanf("%d",&n);
}while (n<=0 || n>10);
printf("please input student's ID,name and score:\n");
for (i=0;i<n;i++)
{
scanf("%d%s",&pa[i].ID,&pa[i].Name);
for (j=0;j<3;j++)
{
scanf("%lf",&pa[i].Score[j]);
sum+=pa[i].Score[j];
}
pa[i].Average=sum/3;
sum=0;
}
}
void Sort(struct Student *pa,int n)
{
int i,k,index;
double t;
for (i=0;i<n-1;i++)
{
index=i;
for (k=i+1;k<n;k++)
{
if (pa[k].Average<pa[index].Average)
index=k;
if (index!=i)
{
t=pa[index].Average;
pa[index].Average=pa[i].Average;
pa[i].Average=t;
}
}
}
}
void Output( const struct Student *pa,int n)
{
int i,j;
for (i=0;i<n;i++)
{
printf("学号=%4d,姓名=%-8s,成绩:",pa[i].ID,pa[i].Name);
for (j=0;j<3;j++)
printf("%5.2f",pa[i].Score[j]);
printf("平均成绩=%5.2f\n",pa[i].Average);
}
}
int main()
{
struct Student st[10];
int i,j,m=0;
int num;
Input(st,num);
for (i=0;i<num;i++)
{
for (j=0;j<3;j++)
{
if (st[i].Score[j]<60)
{
printf("%4d%-8s%d不及格!\n",st[i].ID,st[i].Name,j);
m++;
}
}
if (!m)
printf("全部学生都及格。\n");
}
Sort(st,num);
Output(st,num);
return 0;
} 展开
2个回答
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询