发布网友 发布时间:2022-04-24 11:18
共4个回答
热心网友 时间:2022-05-22 03:03
在冒泡排序中外层循环控制内层循环的次数,按从小到大排列:第一次循环它是把第一个数和第二个数…最后一个数比较把比它小的进行位置交换。例:10,5,30,2,1;外循环
第一次循环:10与5比较
5,10,30,2,1;
5与30比较
5,10,30,2,1;
5与2比较2,10,30,5,1;
2与1比较1,10,30,5,2;第一次循环结束。
热心网友 时间:2022-05-22 04:21
数组元素从下标为0开始,而不是从1开始,所以改成以下样子
#include<stdio.h>
int main()
{
int n[10],j=10,i,temp;
for(i=0;i<10;i++) //=去掉
{
n[i]=j;
j--;
}
for(j=10;j>1;j--)
{
for(i=0;i<j-1;i++)
{
if(n[i+1]<n[i]) /*比较相邻元素*/
{
temp=n[i+1]; /*交换*/
n[i+1]=n[i];
n[i]=temp;
}
}
}
printf("\n");
for(i=0;i<10;i++) //=去掉
printf("%d ",n[i]);
return 0; //添上返回值
}
改了后再试
热心网友 时间:2022-05-22 05:56
把两处for中的i<=10改为i<10;
把
n[i]=j;
j--;
改成
j--;
n[i]=j;
就OK了……
热心网友 时间:2022-05-22 07:47
#include<stdio.h>
int main()
{
int n[10],j=9,i,temp;
for(i=0;i<10;i++)
{
n[i]=j;
j--;
}
for(j=10;j>0;j--)
{
for(i=0;i<j-1;i++)
{
if(n[i+1]<n[i]) /*比较相邻元素*/
{
temp=n[i+1]; /*交换*/
n[i+1]=n[i];
n[i]=temp;
}
}
}
printf("\n");
for(i=0;i<10;i++)
printf("%d ",n[i]);
}
试试~看看是不是你想要的