11
1:建立一个通信录,通信录的结构体记录包括:姓名、生日、电话号码;其中生日又包括三项:年、月、日。编写程序,输入n(n<10)个联系人的信息,再按他们的年龄大小的顺序依次输出其信息源程序
#include<stdio.h>
struct birthday{
int year;
int month;
int day;
};
struct frineds{
char name[10];
struct birthday Birthday;
int phone;
};
int main()
{
int i,j,n;
struct frineds a[10],x;
scanf("%d",&n);
printf("name\t birthday\t number\n");
for(i=0;i<n;i++)
scanf("%s%d%d%d%d",&a[i].name,&a[i].Birthday.year,&a[i].Birthday.month,&a[i].Birthday.day,&a[i].phone);
for(i=0;i<n;i++)
for(j=0;j<n-1;j++){
if(a[j].Birthday.year>a[j+1].Birthday.year){
x=a[j];
a[j]=a[j+1];
a[j+1]=x;
}
if(a[j].Birthday.year==a[j+1].Birthday.year){
if(a[j].Birthday.month>a[j+1].Birthday.month){
x=a[j];
a[j]=a[j+1];
a[j+1]=x;
}
if(a[j].Birthday.month==a[j+1].Birthday.month){
if(a[j].Birthday.day>a[j+1].Birthday.day){
x=a[j];
a[j]=a[j+1];
a[j+1]=x;
}
}
}
for(i=0;i<n;i++)
printf("%s\t%d\t%d\t%d\t%d\n",a[i].name,a[i].Birthday.year,a[i].Birthday.month,a[i].Birthday.day,a[i].phone);
return 0;
}
}

6:按等级统计学生成绩
#include<stdio.h>
#include<string.h>
int set_grade(struct students students[10],int n);
struct students {
int num;
char name[10];
float score;
char grade;
};
int main()
{
int i,n,count;
scanf("%d",&n);
struct students students[10];
for(i=0;i<n;i++){
scanf("%s",&students[i].name);
scanf("%d",&students[i].num);
scanf("%lf",&students[i].score);
count=set_grade(students,n);
}
for(i=0;i<n;i++){
printf("%d\n %s\n %c\n",students[i].num,students[i].name,students[i].grade);
}
printf("不及格人数为:%d\n",count);
return 0;
}
int set_grade(struct students students[10],int n){
int i,count=0;
for(i=0;i<n;i++){
if(students[i].score<60){
students[i].grade='D';
count++;}
else if(students[i].score<70&&students[i].score>=60){
students[i].grade='C';}
else if(students[i].score<85&&students[i].score>=70){
students[i].grade='B';}
else if(students[i].score<=100&&students[i].score>=85){
students[i].grade='A';}
}
return count;
}

浙公网安备 33010602011771号