得不到预期结果。建立信息表,包括学号、姓名、3门课程的成绩,编写程序,...
#include <stdio.h>struct student
{int number;
char name;
int score;
float aver;
int rank;
}s;
int main()
{
int i,j,t;
float k;
for(i=0;i<5;i++)
scanf("%ld%s%f%f%f",&s.number,s.name,&s.score,&s.score,&s.score);
for(i=0;i<5;i++) //求平均成绩
{for(j=0;j<3;j++)
k+=s.score;
s.aver=k/3;
}
t=0;
for(i=0;i<5;i++) //排名
{
k=t<4?s.aver:s.aver;
for(j=0;j<5;j++)
{if(j==t)
continue;
if(s.aver>=k)
{k=s.aver;
t=j;
}
s.rank=i+1;
}
}
printf("Number:Name: score: Average:rank:\n");
for(i=0;i<5;i++)
printf("%-9ld%-10s%-5.1f%-5.1f%-8.1f%-10.1f%-d\n",s.number,s.name,s.score,s.score,s.score,s.aver,s.rank);
return 0;
} scanf("%ld%s%f%f%f", &s.number, s.name, &s.score, &s.score, &s.score);整数用%f?怎么学的? 永恒的蓝色梦想 发表于 2020-5-20 13:24
整数用%f?怎么学的?
#include <stdio.h>
struct student
{long number;
char name;
float score;
float aver;
int rank;
}s;
int main()
{
int i,j,t;
float k;
for(i=0;i<5;i++)
scanf("%ld%s%f%f%f",&s.number,s.name,&s.score,&s.score,&s.score);
for(i=0;i<5;i++) //求平均成绩
{for(j=0;j<3;j++)
k+=s.score;
s.aver=k/3;
}
t=0;
for(i=0;i<5;i++) //排名
{
k=t<4?s.aver:s.aver;
for(j=0;j<5;j++)
{if(j==t)
continue;
if(s.aver>=k)
{k=s.aver;
t=j;
}
s.rank=i+1;
}
}
printf("Number:Name: score: Average:rank:\n");
for(i=0;i<5;i++)
printf("%-9ld%-10s%-5.1f%-5.1f%-8.1f%-10.1f%-d\n",s.number,s.name,s.score,s.score,s.score,s.aver,s.rank);
return 0;
}
改了下数据类型还是存在问题{:10_269:} gsl9527 发表于 2020-5-20 13:35
#include
struct student
{long number;
复制丢失了是s gsl9527 发表于 2020-5-20 13:38
复制丢失了是s
你可倒是说有啥问题啊
永恒的蓝色梦想 发表于 2020-5-20 13:44
你可倒是说有啥问题啊
就是平均成绩和排名算不出 float k; ===>> float k = 0;
k+=s.score; 这个k没有初始化,
发代码最好点编辑框的 <>图标,比如下面示例
#include <stdio.h>
int main()
{
return 0;
}
页:
[1]