C语言,用冒泡排序实现10个数字由小到大输出,为什么我弄出来是乱码 C语言题目: 用冒泡法对任意输入的10个整数由小到大的顺序排...

作者&投稿:容花 (若有异议请与网页底部的电邮联系)

void make(int b[10])

{

   int j,k,m;

   for(j=0;j<=9;j++)

   {

     for(k=0;k<9-j;k++)

     if(b[k]>b[k+1])

{

      m=b[k];

      b[k]=b[k+1];

      b[k+1]=m;

}

   }

}


整体的

#include <stdio.h>

//void in(int a[10])

//{

 //int i;

 //   for(i=0;i<10;i++)

 //   {

// scanf("%d",&a[i]);

 //     //  return a[i];

// }

   

//}

void make(int b[10])

{

   int j,k,m;

   for(j=0;j<=9;j++)

   {

     for(k=0;k<9-j;k++)

     if(b[k]>b[k+1])

{

      m=b[k];

      b[k]=b[k+1];

      b[k+1]=m;

}

   }


}

void out(int c[10])

{

   int j;

   for(j=0;j<10;j++)

   printf("%3d",c[j]);

  // return c[10];

}

int main()

{

int i;

int a[10];

    for(i=0;i<10;i++)

    {

scanf("%d",&a[i]);

      //  return a[i];

}

  //int d[10];

  //in(d);

  make(a);

  out(a);

  return 0;

}



int make(int b[10])
{
int j,k,m;
for(j=0;j<=9;j++)
{
for(k=0;k<=9-j;k++)
if(b[k]<b[k-1])
{
m=b[k];
b[k]=b[k-1];
b[k-1]=m;
}
}
return b[10];
}

make函数改一下




#include <stdio.h>
int in(int a[10])
{
int i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
return a[10];
}
int make(int b[10])
{
int j,k,m;
for(j=0;j<9;j++)
{
for(k=0;k<9-j;k++)
//这个循环体跟循环变量没有关系,只跟 j有关,只是调换相邻两个,并不是针对整体而言的
if(b[j]<b[j-1])
{
m=b[j];
b[j]=b[j-1];
b[j-1]=m;
}
}
return b[10];
}
int out(int c[10])
{
int j;
for(j=0;j<10;j++)
printf("%2d",c[j]);
return c[10];
}
int main()
{
int d[10];
in(d);
make(d);
out(d);
return 0;
}

而且在被调函数中你return a[10]是什么意思,其实这已经越界访问了



int make(int b[10])
{
int j,k,m;
for(j=0;j<9;j++)
{
for (k = 0; k < 9-j;k ++)
if(b[k]>b[k+1])
{
m=b[k];
b[k]=b[k+1];
b[k+1]=m;
}
}
return 0;
}
//冒泡的代码需要改一下,
//还有建议 所有地方 都 return 0;


输入10个数,用冒泡排序法按由小到大顺序排序并输出??c语言的~

冒泡排序的程序代码如下:
#include
int main()
{
int a[10]={0};
int i=0,j=0,t=0;
for(i=0;i<10;i++)
{scanf("%d",&a[i]);}
for(i=0;i<10;i++)
{for(j=0;j<10-i;j++){
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}}}
for(i=0;i<10;i++)
{printf("%d ",a[i]);}
return 0;}
任意输入十个数据,程序运行结果:

扩展资料:
冒泡排序算法的原理如下:
1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3、针对所有的元素重复以上的步骤,除了最后一个。
4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

1、新建一个工程和.c文件。

2、定义变量类型。

3、用一个for语句遍历整个数组。

4、引入一个子函数,该子函数的作用是调整数组元素的顺序,使之由小到大排列。

5、最后通过for函数一次输出调整后的数组元素。

6、介绍一下子函数的实现语句,首先定义子函数。

7、定义变量类型。

8、该子函数实现顺序的调整。

9、编译,执行即可。

用冒泡排序法对输入的10个数进行升序排序 并存入数组中
答:2、在Body中添加一个简单的input按钮,添加一个点击事件mymaopao,用来在浏览器中查看效果。3、定义两个变量i,j。使用两个for循环嵌套遍历数组,第一个i作用为循环次数,第二个j作用是比较两个数大小。4、比较数组中随机的两个数字的大小,如果第一个数比第二个数大,则交换顺序,存放在中间变量...

C语言问题:从键盘输入十个数,用冒泡对输入的数据从小到大的顺序进行排序...
答:include "stdio.h"int main(){int a[10],b;int i,j;for (i = 0; i < 10; i++){printf("输入第%d个数字:",i+1);scanf("%d", &a[i]);getchar();}//冒泡排序for (i = 0; i < 10 - 1; i++){for (j = 0; j < 10-i - 1; j++){if (a[j]>a[j + 1])...

冒泡法10个整数从小到大如何排序?
答:冒泡法10个整数从小到大排序思路如下:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序...

...它们按从小到大排序后输出。要求:使用冒泡法,使用指针作为函数的形式...
答:include<stdio.h> void bubblesorting(int *nums, int size){ int i, j;int t;for(i = 0; i < size-1; i++)for(j = 0; j < size-1-i; j++){ if(nums[j] > nums[j+1]){ t = nums[j];nums[j] = nums[j+1]nums[j+1] = t;} } } int main(){ int nums[1...

用C语言 请使用数组编程实现10个整数的升序(采用冒泡法),并输出
答:include<stdio.h>main(){ int a[10],i,j,t; for(i=0;i<10;i++) scanf("%d",&a[i]); for(j=1;j<10;j++) for(i=0;i<10-j;i++) if(a[i]<a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } for(i=0;i<10;i+...

C语言~十个数字从小到大怎么排列~从大到小呢~
答:用数组来存放十个数字,使用“冒泡排序”来实现排序。10个数字需进行9轮扫描,每次扫描时比较相邻的二个数,如它们不符合要求的大小关系,就交换它们的位置。第一轮扫描结束时,最大的数就“沉”到最后。于是第二的范围就少了一个数。再进行第二两栖型、第三轮,…——直到第9轮就完成了。最后输出...

输入10个数到一维数组中,用冒泡排序法将其按从大到小的次序排序后输出...
答:include <iostream> using namespace std;int a[10];void input(){ for(int i=0;i<10;i++){ cin >> a[i];} }void sortarray(){ for(int i=0;i<10;i++){ for(int j=0;j<9-i;j++){ if(a[j]<a[j+1]) // 从大到小 { int t=a[j];a[j]=a[j+1];a[j+1]...

要求用户输入10个数字使用冒泡法从小到大排序把排序结果进行输出并另外...
答:include<stdio.h>int main(){ int i=0,j=0; int a[10]={1,3,4,5,6,7,9,8,10,2},tmp; while(10>i++){ scanf("%d",&a[i-1]); } for(i=0;i<10;i++) { for(j=0;j<10-i;j++) { if(a[j]>a[j+1]) { tmp = a[j];...

C语言编写函数用冒泡法对数组中10个整数由大到小排序,并在主函数中调用...
答:include <stdio.h> void fun(int *num){ int temp;for(int i=0; i<10; ++i)for(int j=0; j<10-i-1; ++j){ if(num[j]<num[j+1]){ temp=num[j];num[j]=num[j+1];num[j+1]=temp;} } } void main(){ int num[10]={3,2,4,1,5,6,4,3,9,8};fun(num);fo...

在C语言中如何用冒泡法,输入10个人的序号和成绩,对成绩从大到小进行...
答:include<stdio.h> int main(){int a[10];int b[10];int i,j,t;printf("num score\n");for(i=0;i<10;i++){scanf("%d%d",&b[i],&a[i]);//输入值 printf("\n");} for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]<a[i+1]){t=a[i];a[i]=a[i+1];...