一道简单的C语言编程题,输出最大和最小的成绩,但是为什么编译器说答案部分正确啊 5
#include<stdio.h>typedefstruct{charname[10];charnumbers[10];intgrades;}students;intma...
#include<stdio.h>
typedef struct
{
char name[10];
char numbers[10];
int grades;
}students;
int main()
{
int num, i, j;
int flag = 0;
int y, k;
students temp;
scanf("%d", &num);
students stu[1000] = { 0 };
for (i = 0; i < num; i++)
{
scanf("%s %s %d", stu[i].name, stu[i].numbers, &stu[i].grades);
}
for (j = 0; j < num; j++)
{
if (stu[j].grades == stu[j + 1].grades)
flag = 1;
}
if (flag == 0)
{
students* p = stu;
for (y = 0; y < num - 1; y++)
{
for (k = 0; k < num - 1 - y; k++)
if ((p + k)->grades < (p + k + 1)->grades)
{
temp = *(p + k);
*(p + k) = *(p + k + 1);
*(p + k + 1) = temp;
}
}
printf("%s %s\n", p->name, p->numbers);
printf("%s %s\n", (p + num - 1)->name, (p + num - 1)->numbers);
}
else
return 0;
} 展开
typedef struct
{
char name[10];
char numbers[10];
int grades;
}students;
int main()
{
int num, i, j;
int flag = 0;
int y, k;
students temp;
scanf("%d", &num);
students stu[1000] = { 0 };
for (i = 0; i < num; i++)
{
scanf("%s %s %d", stu[i].name, stu[i].numbers, &stu[i].grades);
}
for (j = 0; j < num; j++)
{
if (stu[j].grades == stu[j + 1].grades)
flag = 1;
}
if (flag == 0)
{
students* p = stu;
for (y = 0; y < num - 1; y++)
{
for (k = 0; k < num - 1 - y; k++)
if ((p + k)->grades < (p + k + 1)->grades)
{
temp = *(p + k);
*(p + k) = *(p + k + 1);
*(p + k + 1) = temp;
}
}
printf("%s %s\n", p->name, p->numbers);
printf("%s %s\n", (p + num - 1)->name, (p + num - 1)->numbers);
}
else
return 0;
} 展开
1个回答
展开全部
#include<stdio.h>
#define MAX 100
typedef struct {
char name[20];
char numbers[20];
int grades;
}students;
int main() {
int num, i, imax, imin;
scanf("%d", &num);
students stu[MAX] = { 0 };
for (i = 0; i < num; ++i) {
scanf("%s %s %d", stu[i].name, stu[i].numbers, &stu[i].grades);
}
imax = imin = 0;
for (i = 1; i < num && i < MAX; ++i) {
if (stu[i].grades > stu[imax].grades) imax = i;
if (stu[i].grades < stu[imin].grades) imin = i;
}
printf("最好的成绩是:%d\n",stu[imax].grades);
printf("最差的成绩是:%d\n",stu[imin].grades);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询