5890 求n个学生的平均成绩
#include<stdio.h>
#include<string.h>
struct stu
{
int s_no;
double s_score;
};
int main()
{
int n,i;
double ave;
double sum;
while(scanf("%d",&n)!=EOF)
{
struct stu s[n];
for(i=0;i<n;i++)
{
scanf("%d",&s[i].s_no);
scanf("%lf",&s[i].s_score);
}
for(i=0;i<n;i++)
{
sum+=s[i].s_score;
}
ave=sum/n;
for(i=0;i<n;i++)
{
if(s[i].s_score>ave)
{
printf("%8d ",s[i].s_no);
printf("%.1lf\n",s[i].s_score);
}
}
}
return 0;
}
5891 找出不及格的人,标准不一样
#include<stdio.h>
#include<string.h>
struct note
{
int num,type;
double score;
char name[25];
}a[100];
int main()
{
int n,i;
int count=0;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%d",&a[i].num);
scanf("%s",a[i].name);
scanf("%d",&a[i].type);
scanf("%lf",&a[i].score);
}
for(i=0;i<n;i++)
{
if(a[i].type==1)
{
if(a[i].score<60)
{
count++;
}
}
else if(a[i].type==2)
{
if(a[i].score<50)
{
count++;
}
}
else
{
if(a[i].score<65)
{
count++;
}
}
}
printf("%d\n",count);
for(i=0;i<n;i++)
{
printf("%d ",a[i].num);
printf("%s ",a[i].name);
printf("%d ",a[i].type);
printf("%.2lf\n",a[i].score);
}
}
return 0;
}
5892 五种奖学金,给一组学生求出最多的奖学金
#include<stdio.h>
#include<string.h>
struct stu
{
char name[20];
int ave,class;
char g[2];
char s[2];
int num;
int sal;
};
int main()
{
int n,i,j;
while(scanf("%d",&n)!=EOF)
{
struct stu a[n];
struct stu tmp;
int sum=0;
for(i=0;i<n;i++)
{
scanf("%s",a[i].name);
scanf("%d",&a[i].ave);
scanf("%d",&a[i].class);
scanf("%s",&a[i].g);
scanf("%s",&a[i].s);
scanf("%d",&a[i].num);
a[i].sal=0;
}
for(i=0;i<n;i++)
{
if(a[i].num>0&&a[i].ave>80)
{
a[i].sal+=8000;
}
if(a[i].ave>85&&a[i].class>80)
{
a[i].sal+=4000;
}
if(a[i].ave>90)
{
a[i].sal+=2000;
}
if(a[i].ave>85&&a[i].s[0]=='Y')
{
a[i].sal+=1000;
}
if(a[i].class>80&&a[i].g[0]=='Y')
{
a[i].sal+=850;
}
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(a[j].sal<a[j+1].sal)
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
for(i=0;i<n;i++)
{
sum+=a[i].sal;
}
printf("%s\n",a[0].name);
printf("%d\n",a[0].sal);
printf("%d\n",sum);
}
return 0;
}
5893 找出挂科的同学
#include<stdio.h>
#include<string.h>
struct stu
{
char name[20];
int x;
double score;
int show;
};
int main()
{
int n,i,j;
while(scanf("%d",&n)!=EOF)
{
int count=0;
struct stu a[n];
for(i=0;i<n;i++)
{
getchar();
getchar();
scanf("%s",a[i].name);
scanf("%d",&a[i].x);
scanf("%lf",&a[i].score);
a[i].show=0;
}
for(i=0;i<n;i++)
{
if(a[i].score<60)
{
count++;
a[i].show=1;
}
}
if(count==0)
{
printf("They are Great!!\n");
}
else
{
printf("%d\n",count);
for(i=0;i<n;i++)
{
if(a[i].show)
{
printf("%s\n",a[i].name);
}
}
for(i=0;i<n;i++)
{
if(a[i].show)
{
printf("%d\n",a[i].x);
}
}
for(i=0;i<n;i++)
{
if(a[i].show)
{
printf("%.2lf\n",a[i].score);
}
}
}
}
return 0;
}
5894 根据成绩输出前三名
#include<stdio.h>
#include<string.h>
struct stu
{
int xuehao;
char name[20];
double score;
}inp[100];
int main()
{
int n,i,j;
while(scanf("%d",&n)!=EOF)
{
int count=0;
struct stu tmp;
for(i=0;i<n;i++)
{
scanf("%d",&inp[i].xuehao);
scanf("%s",inp[i].name);
scanf("%lf",&inp[i].score);
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(inp[j].score<inp[j+1].score)
{
tmp=inp[j];
inp[j]=inp[j+1];
inp[j+1]=tmp;
}
}
}
for(i=0;i<3;i++)
{
printf("%d ",inp[i].xuehao);
printf("%s\n",inp[i].name);
}
}
return 0;
}
结构体的题都不是很难(相对,主要是输出格式。