如果解决你的问题,请点个采纳!
#include <iostream>
using namespace std;
#define STU_SIZE 5
struct Student {
int num;
char name[10];
float score[3];
};
void avr_max(Student *stu);
void print(Student *stu);
int main() {
Student stu[STU_SIZE];
for (int i = 0; i < STU_SIZE; i++) {
cout << "请输入第" << i + 1 << "名学生的号码:" << endl;
cin >> stu[i].num;
cout << "请输入第" << i + 1 << "名学生的名字:" << endl;
cin >> stu[i].name;
cout << "请输入第" << i + 1 << "名学生的三科分数:" << endl;
for (int k = 0; k < 3; k++) {
cin >> stu[i].score[k];
}
}
avr_max(stu);
print(stu);
return 0;
}
void avr_max(Student *stu) {
double avg[STU_SIZE] = { 0 };
// 计算平均分,并保存再avg数组中
for (int i = 0; i < STU_SIZE; i++) {
avg[i] = 0.0;
for (int j = 0; j < 3; j++) {
avg[i] += stu[i].score[j];
}
avg[i] /= 3; // 计算平均分
}
int index = 0;
double max = avg[0];
for (int k = 1; k < STU_SIZE; k++) {
if (max < avg[k]) {
max = avg[k];
index = k;
}
}
cout << STU_SIZE << "名学生平均分最高的是:" << endl;
cout << "编号:" << stu[index].num << "\t" << "姓名:" << stu[index].name << "\t" << "平均分成绩:" << avg[index] << endl;
}
void print(Student *stu) {
cout << endl << STU_SIZE << "名学生的信息:" << endl;
for (int i = 0; i < STU_SIZE; i++) {
cout << "编号:" << stu[i].num << "\t" << "姓名:" << stu[i].name << "\t";
for (int j = 0; j < 3; j++) {
cout << "第" << j + 1 << "科成绩:" << stu[i].score[j] << "\t";
}
cout << endl;
}
}
先定义结构体
#define N 2
struct student{
int num;
char name[20];
int score[3];
}stud[N],t;
如有帮助,望采纳。点击我回答右上角【采纳】按钮。
#include <stdio.h>
struct student
{
int num;
char name[10];
float score[3];
} stu[5];
void print(struct student s[]);
int main()
{
int i, j;
for (i=0; i<5; i++){
printf("Please enter No.%d student num, name, score: ", i+1);
scanf("%d %s", &stu[i].num, stu[i].name);
for (j=0; j<3; scanf("%f", &stu[i].score[j++]));
}
print(stu);
return 0;
}
void print(struct student s[])
{
int i, j;
for (i=0; i<5; printf("\n"), i++){
printf("%d %-10s ", s[i].num, s[i].name);
for (j=0; j<3; printf("%.2f ", s[i].score[j++]));
}
}
如有帮助,望采纳。点击我回答右上角【采纳】按钮。
#include <stdio.h>
#include <stdlib.h>
struct Student{
int num;
char name[20];
float score[3];
};
void input(Student *st);
void print(Student *st);
int main()
{
Student *stu=(Student*)malloc(5*sizeof(Student));
input(stu);
print(stu);
system("pause");
return 0;
}
void input(Student *st)
{
int i, j;
Student *p;
for (p=st, i=0; p<st+5; p++, i++){
printf("Please enter No.%d student info: ", i+1);
scanf("%d %s", &p->num, p->name);
for (j=0; j<3; scanf("%f", &p->score[j++]));
}
}
void print(Student *st)
{
int i;
Student *p;
for (p=st, printf("Result:\n"); p<st+5; p++){
printf("%d %7s ", p->num, p->name);
for (i=0; i<3; printf("%.2f ", p->score[i++]));
printf("\n");
}
}