1. 学生成绩排名 1) 定义一个数组a[11],用以存放学生的成绩。 2) 从键盘输入10个学生成绩 3) 采用冒泡法,

如题所述

#include<iostream>
using namespace std;

struct Student
{
char name[16];
double data;
};
Student stu[11];

void print(int n)
{
int i;
for(i=0;i<n;i++)
cout<<stu[i].name<<" "<<stu[i].data<<endl;

}

void sort()
{
Student t;
for(int i=1;i<10;i++)
for(int j=0;j<10-i;j++)
if(stu[j].data>stu[j+1].data)
{
t=stu[j];
stu[j]=stu[j+1];
stu[j+1]=t;
}
}

void print1()
{
for(int i=10;i>=0;i--)
cout<<stu[i].name<<" "<<stu[i].data<<endl;
}

void main()
{

cout<<"请输入10学生的姓名和成绩:"<<endl;
int i;
for(i=0;i<10;i++)
{
cout<<"请输入第"<<i+1<<"个学生的姓名和成绩: ";
cin>>stu[i].name>>stu[i].data;
}
sort();
print(10);
cout<<"请输入学生的姓名和成绩:";
Student s;
cin>>s.name>>s.data;
for(i=9;i>=0;i--)
if(stu[i].data>s.data)
stu[i+1]=stu[i];
else
{
stu[i+1]=s;
break;
}
if(i<0)
stu[0]=s;
print(11);
print1();
}
另外,团IDC网上有许多产品团购,便宜有口碑
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2020-12-12
#include <stdio.h>
main()
{
float a[10];
int i,j,temp;
printf("请输入10个学生的成绩\n");
for (i=0;i<=9;i++)
{
scanf("%f",&a[i]);
}
/*冒泡排序法(从大到小)*/
for (i=0;i<=9;i++)
{
for (j=i+1;j<=9;j++)
{
if (a[i]<a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
printf("成绩经过排序后\n");
for (i=0;i<=9;i++)
{
printf("%f ",a[i]);
}
printf("\n");
}

看了楼主的题目,没经过编译器,直接在输入框写了这个代码、不知道有没语法错误。楼主可以自己检查。大概程序就是这样。本回答被提问者采纳