有5个学生,用n数组存放学号,a数组存放物理成绩,b数组存放数学成绩。程序要求计算并输出:①:数学和物理的平均成绩。②:输出2门课程都低于平均成绩的同学的学号和成绩。③:对数学成绩从高到低排序。符合题目要求的程序即得采纳,先到先得。
#include <stdio.h>
#define MAX_STUDENT 5
int main(void) {
int n[MAX_STUDENT] = {12345, 12346, 12347, 12348, 12349};
int a[MAX_STUDENT] = {60, 70, 80, 90, 100};
int b[MAX_STUDENT] = {65, 75, 85, 95, 100};
int i, j, temp;
float math_avg = 0.0f;
float phy_avg = 0.0f;
/*
* 计算平均分
*/
for( i = 0; i < MAX_STUDENT; i++ ) {
math_avg += b[i];
phy_avg += a[i];
}
math_avg /= MAX_STUDENT;
phy_avg /= MAX_STUDENT;
printf("数学平均分: %0.2f\n物理平均成绩: %0.2f\n", math_avg, phy_avg);
/*
* 求两门成绩都低于平均分的学生
*/
for ( i = 0; i < MAX_STUDENT; i++ ) {
if ( a[i] < phy_avg && b[i] < math_avg ) {
printf("两门成绩都低于平均分的同学的学号: %d\n", n[i]);
printf("该同学的数学成绩: %d\n该同学的物理成绩: %d\n", b[i], a[i]);
}
}
/*
* 冒泡排序
*/
for ( i = 0; i < MAX_STUDENT-1; i++ ) {
for ( j = i+1; j < MAX_STUDENT; j++ ) {
if ( b[i] < b[j] ) {
temp = b[i]; b[i] = b[j]; b[j] = temp;
}
}
}
printf("数学成绩从高到低排序:\n");
for ( i = 0; i < MAX_STUDENT; i++ ) {
printf("%5d", b[i]);
}
printf("\n");
return 0;
}
#define MAX_STUDENT 5
int main(void) {
int n[MAX_STUDENT] = {12345, 12346, 12347, 12348, 12349};
int a[MAX_STUDENT] = {60, 70, 80, 90, 100};
int b[MAX_STUDENT] = {65, 75, 85, 95, 100};
int i, j, temp;
float math_avg = 0.0f;
float phy_avg = 0.0f;
/*
* 计算平均分
*/
for( i = 0; i < MAX_STUDENT; i++ ) {
math_avg += b[i];
phy_avg += a[i];
}
math_avg /= MAX_STUDENT;
phy_avg /= MAX_STUDENT;
printf("数学平均分: %0.2f\n物理平均成绩: %0.2f\n", math_avg, phy_avg);
/*
* 求两门成绩都低于平均分的学生
*/
for ( i = 0; i < MAX_STUDENT; i++ ) {
if ( a[i] < phy_avg && b[i] < math_avg ) {
printf("两门成绩都低于平均分的同学的学号: %d\n", n[i]);
printf("该同学的数学成绩: %d\n该同学的物理成绩: %d\n", b[i], a[i]);
}
}
/*
* 冒泡排序
*/
for ( i = 0; i < MAX_STUDENT-1; i++ ) {
for ( j = i+1; j < MAX_STUDENT; j++ ) {
if ( b[i] < b[j] ) {
temp = b[i]; b[i] = b[j]; b[j] = temp;
}
}
}
printf("数学成绩从高到低排序:\n");
for ( i = 0; i < MAX_STUDENT; i++ ) {
printf("%5d", b[i]);
}
printf("\n");
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-05-03
#include <stdio.h>
void main()
{
int i,j,t,n[5];
float m,a[5],b[5],sum1,sum2,,ave1,ave2;
printf("请输入5个学生的学号、物理成绩和数学成绩:");
for(i=0;i<5;i++)
scanf("%d %f %f",&n[i],&a[i],&b[i]);
for(i=0;i<5;i++)
{
sum1+=a[i];
sum2+=b[i];
}
ave1=sum1/5;
ave2=sum2/5;
printf("物理均分:%.2f,数学均分:%.2f\n",ave1,ave2);
printf("两门都低于均分的同学:");
for(i=0;i<5;i++)
if(a[i]<ave1&&b[i]<ave2)printf("%d %f %f",n[i],a[i],b[i]);
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(b[i]<b[j])
{
t=n[i];n[i]=n[j];n[j]=t;
m=a[i];a[i]=a[j];a[j]=m;
m=b[i];b[i]=b[j];b[j]=m;
}
printf("数学成绩从高到低情况:\n);
for(i=0;i<5;i++)
printf("%d %f %f",n[i],a[i],b[i]);
}
void main()
{
int i,j,t,n[5];
float m,a[5],b[5],sum1,sum2,,ave1,ave2;
printf("请输入5个学生的学号、物理成绩和数学成绩:");
for(i=0;i<5;i++)
scanf("%d %f %f",&n[i],&a[i],&b[i]);
for(i=0;i<5;i++)
{
sum1+=a[i];
sum2+=b[i];
}
ave1=sum1/5;
ave2=sum2/5;
printf("物理均分:%.2f,数学均分:%.2f\n",ave1,ave2);
printf("两门都低于均分的同学:");
for(i=0;i<5;i++)
if(a[i]<ave1&&b[i]<ave2)printf("%d %f %f",n[i],a[i],b[i]);
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(b[i]<b[j])
{
t=n[i];n[i]=n[j];n[j]=t;
m=a[i];a[i]=a[j];a[j]=m;
m=b[i];b[i]=b[j];b[j]=m;
}
printf("数学成绩从高到低情况:\n);
for(i=0;i<5;i++)
printf("%d %f %f",n[i],a[i],b[i]);
}
第2个回答 2019-05-02
以下为程序代码及执行结果: #include #include int main() { printf("hello world!\n"); system("pause"); return 0; } 执行结果:
第3个回答 2019-05-02
c语言代码按你的要求编写