c语言作业,给定一个10元素数组,按元素从小到大进行排序。从小到大a[0]~a[9],老师规定说。

c语言作业,给定一个10元素数组,按元素从小到大进行排序。从小到大a[0]~a[9],老师规定说。老师规定了必须使用冒泡排序法,还要沉底,如图,下面的是老师课堂讲的,使用tmp找最大值

第1个回答  2017-05-06
冒泡法排序是“交换相邻的两个数”,虽然它也用temp做交换的临时变量,但它不用找最大值。
选择排序是“与最大值或最小值交换”,用temp储存最大值的位置而不是最大值。
貌似排序时不用找最大值,你或者你老师是不是搞混了?
冒泡法排序:
for(i=1;i<10;i++)//i是排序的趟数,共需要9趟
for(j=9;j>=i;j--)//j是比较得到次数,第i趟共需要比较10-i次
if(a[j-1]>a[j])
{
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}追问

用不用写#include开始

不行

他说i未声明标识符

他说temp未声明标识符

他说括号遇到之前的结束

追答

我给你发的程序不完整,只是排序部分,完整的冒泡法排序程序:
#include“stdio.h”
int main()
{
int i,j,tmp;
int a[10]={1,4,2,8,3,5,7,9,0,8};
for(i=1;i=i;j--)//j是比较得到次数,第i趟共需要比较10-i次
if(a[j-1]>a[j])
{
tmp=a[j-1];
a[j-1]=a[j];
a[j]=tmp;
}
printf(“排序后数组:\n”);
for(i=0;i<10;i++)printf(“%3d”,a[i]);
putchar('\n');
return 0;
}

追问

我试试

不行

你在吗

他说j未声明标识符

可以了

还是不刻意

可以

缺少冒号

我放了

for,for,if都放冒号了?还是不行

晕了不会

你还会回答其他问题,还以为专业人士

我的

追答

第一个for语句丢了一个i😳,应该是:
for(i=1;i<10;i++)
修改以后好像没有错误了。
呵呵,其他问题都是自己的经验,像不像一个假专家?

运行时下面的错误提示经常是错误的,你只能根据提示在附近寻找真正的错误,不能他说少个什么你就加一个什么。

追问

可以了,是我自己漏了i,其他的感觉你仍需努力,c语言棒棒哒!

追答

你学到不少东西啦,添加了j变量的声明,还试着添加了几个无用的😳冒号~~最终又果断的去掉了~~这才是真正的学习😊,👍

追问

哈哈我是小白,我都快放弃c语言了,为了学这个,节节课问老师,其实我听不懂的,老师说要学会看错误,我就巡着老师说哪里少了补个

你好忙哦大晚上的还那么忙

感觉百度提问的都是老手了,跟我们现在的c语言学着有点差别,上次那个回答的人,用了其他的字母代替,我本来想采纳的,他那么小气,把答案都删了

追答

谢谢采纳,其实为是真正的假专家,所以,还需要努力,做一个名副其实、超专业的假专家😜

追问

嗯百度提问大多数都是无聊人士,你很真啦,很耐心为我解答,而且浅显易懂,还真是你才能听懂我说的话,我也感谢你

你又知道我加了j

😂都是无用功

可能太久没采纳就觉得我不采纳了

你知道 pm2.5测试仪的网络连接形式包括什么嘛?

追答

这个还真的帮不了你啦😄

追问

大神这次c语言很简单

帮我看看

我发了问题

好坑,别人帮我要20元

追答

好了,你去看一看吧!

本回答被提问者采纳
第2个回答  2017-05-06
冒泡和沉底是两种不同的方法, 从上往下检索,大数往后移是沉底, 从下往上检索,小数往前是冒泡
你代码中只有一个for循环, 只能冒一个泡或沉一个底追问

那个不是重点,重点是第一句

本回答被网友采纳
第3个回答  2017-05-05
亲,你要问什么。你的程序不对追答

这是才是冒泡法排序

追问

嗯你怎么就看不懂呢

追答

一次遍历怎么可能是冒泡法

我写c语言10年了,这个都不懂我还不如撞死

追问

那个不是重点,重点是第一句

相似回答