冒泡排序问题
#include <stdio.h>void main()
{
int a;
int i,j,t;
printf("input 10 numbers:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a);
}
printf("\n");
for(j=0;j<9;j++)
{
for(i=0;i<9-j;i++);
{
if(a>a)
{
t = a;
a = a;
a = t;
}
}
}
for(i=0;i<10;i++)
{
printf(" %d",a);
}
printf("\n");
}
编译正确 但是达成不了功能。求救大佬 a和a去比
for(j=0;j<9;j++)
{
for(i=0;i<9-j;i++);
{
if(a>a)
{
t = a;
a = a;
a = t;
}
}
} 巴巴鲁 发表于 2020-10-17 20:33
a和a去比
for(j=0;j
#include<stdio.h>
int main()
{
int i,j,t,a;
for(i=0;i<10;i++)
scanf("%d",&a);
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a>a)
{t=a;a=a;a=t;}
for(i=0;i<10;i++)
printf("%d\n",a);
return 0;
}
那大佬 这段程序我觉得和我上面的程序一样但是能实现排序功能这是为什么 1004054692 发表于 2020-10-17 20:58
#include
int main()
{
你可能还没有理解冒泡排序的实现
每次拿第一个元素与后面的元素依次比较,小(或大)互换位置
参考一下甲鱼哥做的图 // C语言版本的冒泡排序
int bubblesort(int arr[], int len)
{
for(int i=0; i<len; i++)
{
for(int j=0; j<len-i-1; j++)
{
if(arr > arr)
//swap(arr, arr);
int temp = arr;
arr = arr;
arr = temp;
}
}
}
int main(void)
{
int arr[] = {1, -2 ,4 , 9, -8};
bubblesort(arr, sizeof(arr)/sizeof(arr));
return 0;
} 川建军 发表于 2020-10-17 22:58
// C语言版本的冒泡排序
int bubblesort(int arr[], int len)
你这个程序能排序?我运行后直接 Press any key to continue... 你的程序没有大问题,有一个错误,见我的程序注释
#include <stdio.h>
void main()
{
int a = {0};
int i,j,t;
printf("input 10 numbers:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a);
}
printf("\n");
for(j=0;j<10;j++)
{
for(i=0;i<9;i++)// 程序错误在此,不能有分号!
{
if(a<a)
{
t = a;
a = a;
a = t;
}
}
}
for(i=0;i<10;i++)
{
printf(" %d",a);
}
printf("\n");
}
巴巴鲁 发表于 2020-10-17 20:33
a和a去比
for(j=0;j
你被他误导了,for 语句也用了分号 乐乐学编程 发表于 2020-10-18 08:05
你这个程序能排序?我运行后直接 Press any key to continue...
i->len减1 对不起对不起 风过无痕1989 发表于 2020-10-18 08:59
你被他误导了,for 语句也用了分号
哎,没看到{:10_250:} 川建军 发表于 2020-10-18 11:49
i->len减1 对不起对不起
不用说对不起,我也是来学习的 弄明白了吗?若是没弄明白,请将问题提出来,若是弄明白了,给个最佳答案哟~~ 还没弄明白,我帮你顶 现在清楚问题出在哪啦吗? #include <iostream>
using namespace std;
void bubblesort(doble arr[], int len)
{
for(int i=0; i<len; i++)
{
for(int j=0; j<len-i-1; j++)
{
if(arr > arr)
{
temp = arr;
arr = arr;
arr = temp;
}
}
}
页:
[1]