#include "stdio.h"
void fun(int s[],int n)
{int i,j,t;
for(i=0;i {t=s[j];s[j]=s[j+1];s[j+1]=t;}
}
main()
{int s[80]; int i,n=8;
clrscr();
printf("Enter the array:\n");
for(i=0;i
fun(s,n);
printf("The sorted array :\n");
for(i=0;i
}
用空格格开输入的数,调试通过。
冒泡法是不断将邻近的两个数比较,在比较列中找出最大/小的数,找完第一遍后把最大/小的数放在一端 ,第二次从余下的数中继续找最大/小,如此反复。
fun(ints[],int n)作用是将一个有n个元素的数组按大小顺序排列,这个函数只对数组元素处理,所以输入输出数组在主函数中实现就可以了。
PS:算法与3楼相同,回楼主输入87423148输出87423148 是因为3楼的朋友主函数中n=4,即数组只有四个元素,只排列8742。
晕啦,一定要一串数字一起输入啊,那样怎么知道输入的是几位数啊,只能作为一位一位的数处理啦
#include "stdio.h" //这儿如果出错改成
void fun(int s[],int n)
{int i,j,t;
//for(i=1;i<=n;i++) 主程序有输入功能了,这儿不要了
//scanf("%d",&s[i]);
printf("\n");
for (j=1;j<=n-1;j++) //改成(j=0;j{t=s[j];s[j]=s[i];s[i]=t;}
printf("the sorted numbers:\n");
//for(i=1;i<=n;i++) 主程序有输出功能了,这儿不要了
//printf("%d",s[i]);
}
main()
{ int s[80]; int i,n=18;
printf("input the number:\n");
for(i=0;i
for(i=0;i
上面的是各个数之间用空格或者回车隔开的
/*
下面程序是在你程序的基础上改的,在此提醒一下楼主,写C代码的时候请记得数组是从0到n-1的,别老是想着从1到n。还有,应该养成自己写C代码的书写风格。
输入时请在没个数之间带上空隔号。
*/
#include "stdio.h"
#define N 18
void fun(int s[],int n)
{
int i,j,t;
/*
printf("input the number:\n");
for(i = 0;i < n;i++)
scanf("%d",&s[i]);
printf("\n");
*/
for (j = 1;j < n;j++)
for(i = 0;i < n - j;i++)
if(s[i] < s[i+1])
{
t = s[i];
s[i] = s[i+1];
s[i+1] = t;
}
/*
printf("the sorted numbers:\n");
for(i = 0;i < n;i++)
printf("%d ",s[i]);
*/
}
main()
{
int s[N];
int i,n = N;
printf("input the number:\n");
for(i = 0;i < n;i++)
scanf("%d",&s[i]);
fun(s,n);
printf("the sorted numbers:\n");
for(i = 0;i < n;i++)
printf("%d ",s[i]);
getch();
return 0;
}
#include "stdio.h"
void fun(int s[],int n)
{int i,j,t;
/*printf("input the number:\n"); //这部分可以注释
for(i=0;i<=n-1;i++)
scanf("%d",&s[i]);
printf("\n"); */ //注释结束
for (j=0;j<=n-1;j++) //数组从下标0开始的
for(i=0;i<=n-j-2;i++)
if(s[i]{t=s[i];s[i]=s[i+1];s[i+1]=t;}
printf("the sorted numbers:\n");
/*for(i=1;i<=n;i++) //这部分也可以注释
printf("%d",s[i]); */
}
int main()
{
int s[80];
int i,n=4;
for(i=0;i
for(i=0;i
return 0;
}
执行是正确的!
#include "stdio.h"
void fun(int s[],int n)
{int i,j,t;
printf("input the number:\n");
for(i=1;i<=n;i++)
scanf("%d",&s[i]);
printf("\n");
for (j=1;j<=n-1;j++)
for(i=1;i<=n-j;i++) j=n了,做不下去的,这步什么意思?
if(s[i]{t=s[i];s[i]=s[i+1];s[i+1]=t;}
printf("the sorted numbers:\n");
for(i=1;i<=n;i++)
printf("%d",s[i]);
}
main()
{ int s[80]; int i,n=18;
for(i=0;i
for(i=0;i