C語言結構體練習

2020-08-12 22:44:58

1、編寫一個函數print,列印一個學生的成績陣列,該陣列中有5個學生的數據記錄,每個記錄包括num,name,score[3],用主函數輸入這些記錄,用print函數輸出這些記錄。

#include<stdio.h>
#define N 5

struct Student{
char num[6];
char name[8];
int score[3];
}stu[5];

void print(struct Student stu[5]);

int main(){
int i,j;
for(i=0;i<N;i++){
printf("input score of  student %d:",i+1);
printf("NO:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
for(j=0;j<3;j++){
printf("score %d:",j+1);
scanf("%d",&stu[i].score[j]);
}
printf("\n");
}
print(stu);
return 0;}

void print(struct Student stu[6]){
int i,j;
printf("NO. name score1 score2 score3\n");
for(i=0;i<N;i++){
printf("%s%5s",stu[i].num,stu[i].name);
for(j=0;j<3;j++){
printf("%7d",stu[i].score[j]);
}
printf("\n");
}
}

2、在上題的基礎上,編寫一個函數input,用來輸入5個學生的數據記錄。

#include<stdio.h>
#define N 5

struct Student{
char num[6];
char name[8];
int score[3];
}stu[5];

void input(struct Student stu[5]);
void print(struct Student stu[5]);

int main(){
input(stu);
print(stu);
return 0;
}

void input(struct Student stu[6]){
int i,j;
for(i=0;i<N;i++){
printf("input score of  student %d:",i+1);
printf("NO:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
for(j=0;j<3;j++){
printf("score %d:",j+1);
scanf("%d",&stu[i].score[j]);
}
printf("\n");
}
}

void print(struct Student stu[5]){
int i,j;
printf("NO. name score1 score2 score3\n");
for(i=0;i<N;i++){
printf("%s%5s",stu[i].num,stu[i].name);
for(j=0;j<3;j++){
printf("%7d",stu[i].score[j]);
}
printf("\n");
}
}