输入3个学生的成绩并按由小到大的顺序输出 怎样编程
答案:4 悬赏:70
解决时间 2021-03-21 23:48
- 提问者网友:夕夏残阳落幕
- 2021-03-21 03:24
输入3个学生的成绩并按由小到大的顺序输出 怎样编程
最佳答案
- 二级知识专家网友:初心未变
- 2021-03-21 04:01
回答者: x68251
冒泡法排序,写的正确,代码比较优雅。
回答者: flycat0511
试图也用 冒泡法进行排序,可惜 int temp = a[i + 1]; 超出了数组的界限,注意 C语言的数组索引从 0 开始的,最大到达 N-1,int a[3] = {88,71,93}; 只定义了 三个元素,索引从 0 到 2。
而且排序算法有问题,她很可能是位可爱的小女生。
a[j + 1] 里面的数据有可能丢失,被前一个索引数据覆盖 a[j]
算法起不到排序作用。
冒泡法排序,写的正确,代码比较优雅。
回答者: flycat0511
试图也用 冒泡法进行排序,可惜 int temp = a[i + 1]; 超出了数组的界限,注意 C语言的数组索引从 0 开始的,最大到达 N-1,int a[3] = {88,71,93}; 只定义了 三个元素,索引从 0 到 2。
而且排序算法有问题,她很可能是位可爱的小女生。
a[j + 1] 里面的数据有可能丢失,被前一个索引数据覆盖 a[j]
算法起不到排序作用。
全部回答
- 1楼网友:走,耍流氓去
- 2021-03-21 07:12
#include <stdio.h>
main()
{
int i,a[3],temp;
printf("请输入三个人的成绩:");
for(i=0;i<3;i++)
scanf("%d",&a[i]);
for(i=0;i<2;i++)
{
{
if(a[i]>a[i+1])
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
for(i=0;i<3;i++)
printf("%-3d",a[i]);
}
}
- 2楼网友:伤口狠精致
- 2021-03-21 06:23
先排序就行了。
#include <stdio.h>
#define LENGTH 3
void Sort(float a[])
{
for(int i=0;i<LENGTH;i++)
{
for(int j=i;j<LENGTH-1;j++)
{
if(a[j] > a[j+1])
{
float f = a[j];
a[j] = a[j+1];
a[j+1] = f;
}
}
}
}
int main()
{
float a[] = {99.0,55.0,77.5};
Sort(a);
for(int i=0;i<LENGTH;i++)
printf("%.2f\n",a[i]);
return 0;
}
- 3楼网友:闲懒诗人
- 2021-03-21 05:06
冒泡法排序:
#include <iostream.h>
void main()
{
int a[3] = {88,71,93};/这里设定3个成绩
for(int i = 0;i < 3;i ++)
{
int temp = a[i + 1];
for(int j = i;j >= 0;j --)
{
if(temp < a[j + 1])
{
a[j + 1] = a[j];
a[j] = temp;
}
}
for(int k = 0;k < 3;k ++)
{
cout<<a[k];
if(k == i)
{
cout<<" ";
}
}
cout<<endl;
}
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯