我用C语言编的冒泡排序法,编译通过了,但结果却不对,谁能帮我看一下错哪里了,谢谢~

作者&投稿:赧军 (若有异议请与网页底部的电邮联系)
Ubuntu下C语言的读文件的代码,帮我看一下哪里错了,总是编译时成功,运行时出错,谢谢!~

ubuntu是Linux的一种,所以Linux的编译器gcc同样也适用于ubuntu。
要在ubuntu下编译gcc,可以按照如下步骤。

1,确认gcc是否安装。
Ubuntu的标准安装,会同步安装gcc编译器,如果没有安装,那么需要手动安装。
在shell下,打gcc --version,如果可以正确显示版本信息,表示已经安装,可以忽略第二步。

2,安装gcc。
在shell下,使用命令

sudo apt-get build-depgcc
即可智能下载安装gcc,前提为系统需要联网。

3, 执行编译。
执行C语言编译的最简命令为
gcc c_files -o target_name
其中c_files为所有需要编译的C文件列表,target_name为生成的可执行文件名。
执行后,如果有错误,那么需要根据错误进行修改源程序,直至没有错误为止,这时会生成一个与之前设定的target_name同名的可执行文件。通过
./target_name
可以运行该程序。

力 力 距离

例如 输入数据
5 4 3 2 1
一共5个元素,四次冒泡之后就有序了,不用比较5次。
i=0 时 进行第一次冒泡, j=0;j<5 这样你要比较5次,最后一次会比较if(a[4]>a[5])
虽然你只定义了a[5],但是a[5]的位置一定存在值,会导致你的数据出错
改成
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)

你的二重循环里面,应该是判断和交换 a[i]和a[j]

#include<stdio.h>
int main()
{
int a[5],i,j,b;
for(i= 0;i<5;i++)
scanf("%d",&a[i]);

for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
{
if(a[j]>a[j+1])
{
b = a[j+1];
a[j+1] = a[j];
a[j]= b;
}
}
for(i =0;i<5;i++)
printf("%d ",a[i]);
return 0;
}


c语言实现冒泡排序法
1、开启一个终端并打开vim,新建文件bubble.c。输入预处理指令#includestdio.h,用于调用printf函数 2、定义一个排序函数void sort(int *a, int n)。其中a表示待排序的数组的首地址;n表示待排序数组的长度。3、使用两层循环实现冒泡排序。其中外层控制循环的轮次;内层控制一次循环的比较位置。当相邻...

C语言怎么冒泡排序?
1、打开Visual stdio 2019软件新建空白c文件,在源文件处右击鼠标,选择添加下面的新建项,此时会弹出窗口:2、弹出的窗口选择C++文件,将文件扩展名改为“.c”点击添加完成新建c文件,之后就可以编写程序了:3、接下来就可以编写程序了,首先最前面的部分为输入数字的部分,之后的程序会对用户输入的数字...

C语言冒泡排序法是什么?
冒泡排序法,是C语言常用的排序算法之一,意思是对一组数字进行从大到小或者从小到大排序的一种算法。具体方法是:相邻数值两两交换。从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不同,则将两个数的位置进行交换(对调);如果其与我们的期望一致,则不用交换。重复这样的过程,一直到最...

c语言怎么做冒泡排序啊?
使用冒泡排序法进行编程:解释:1.第一个for循环:利用数组循环输入4个变量。2.第二个for循环:该循环的意思是如果a[0]>a[1]的话,两个变量的值交换,利用循环依次比较。要注意的是i<3,因为其中有i+1,i最大取到2,也就是i+1最大取到3才正确。3.第三个for循环:利用循环依次输出排序后的数...

C语言冒泡法
void main(){ int a[10];int i,j,t;printf("input 10 numbers:\\n");for(i=0;i<10;i++)scanf("%d",&a[i]);for(j=0;j<9;j++) \/*进行9次循环 实现9趟比较*\/ for(i=0;i<9-j;i++) \/*在每一趟中进行9-j次比较*\/ if(a[i]>a[i+1]) \/*相邻两个数比较,想降序...

C语言冒泡排序法代码
include<stdlib.h> main(){ int i, j, b, a[10]; printf("随机猜想数为:\\n");for(i = 0; i < 10; i++){ a[i] = rand();printf("%d\\n",a[i]);} printf("按升序排列为:\\n");for(i = 0; i < 9; i++){ for(j = 0; j < 9 - i ; j++){ if(a[j] ...

c语言冒泡排序是什么
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的...

两个数相同时c语言怎么用冒泡法?
冒泡排序是一种简单但效率较低的排序算法,它可以将一个数列中的元素按照从大到小或从小到大的顺序排列。如果要对一个数组进行冒泡排序,在C语言中可以使用以下的代码:void bubbleSort(int arr[], int n) { int i, j, temp; for (i = 0; i < n - 1; i++) { for (j =...

C语言:编写一个程序,实现冒泡排序,将输入的n个整数按降序进行排序,并输 ...
short:修饰int,短整型数据,可省略被修饰的int。(K&R时期引入)long:修饰int,长整型数据,可省略被修饰的int。(K&R时期引入)long long:修饰int,超长整型数据,可省略被修饰的int。(C99标准新增)signed:修饰整型数据,有符号数据类型。(C89标准新增)unsigned:修饰整型数据,无符号数据类型。(...

C语言冒泡排序法
冒泡排序每一趟排序把最大的放在最右边。比如:87 12 56 45 78 87和12交换:12 87 56 45 78 87和56交换: 56 87 45 78 87和45交换: 45 87 78 87和78交换: 78 87 到此第一趟排序结束,接下来的每一趟排序都是这样。include<stdio.h>void Print(int *num, int n){ int...

贾汪区15083338741: C语言:编写一个程序用冒泡排序实现升序排列 -
仪筠参芪: 1、首先打开一个空白的C语言文件,首先先定义一组待排序的数列以及各个变量,接着就是用来处理排序的逻辑: 2、冒泡排序的逻辑是一组数从第一个数值开始,如果相邻两个数的排列顺序与期望不同,则将两个数的位置进行交换,重复这样的过程直到最后一个数不需要交换则排序完成,如果有N个数需要排序,则需要进行(N-1)趟的比较: 3、最后编译运行程序,观察最终排序的结果,可以看到数字被从小到大的排列好了,以上就是C语言冒泡排序实现的过程:

贾汪区15083338741: 用C语言编写函数,要实现快速排序算法或者冒泡法 -
仪筠参芪: 冒泡法排序函数如下: void bubble(int a[],int n) {int i,j,t;for(i=0;i<n-1;i++)/*共进行n-1轮*/for(j=0;j<n-1-i;j++)/*每轮在前n-i个数中比较*/if(a[j]>a[j+1]) /*若相邻元素逆序*/ {t=a[j]; a[j]=a[j+1];a[j+1]=t;}/*就交换*/ }void sort(int *a, int left, int right) {if(...

贾汪区15083338741: SOS. 这是C语言链表排序的.我采用的是冒泡法,编译能通过,但是不会排序.请高手指导. -
仪筠参芪: //下面是调好的排序void Sort(Link l){Link p,q,tail; p=l;tail=NULL; //l已经是带头节点的链头了,没必要在开辟一个新节点,直接使用l while(l->next!=tail) //如果head所指结点的next成员为NULL,结束循环{p=l;q=p->next; // q为p后续,总是指向p...

贾汪区15083338741: c语言冒泡排序 - C语言用冒泡法实现10个整数的排序
仪筠参芪: #include void main() { int i, n=30, j, m; int a[]={210,108,65,49,72,88,67,5,19,36, 90,35,1,112,215,6,23,46,51,29, 77,19,0,55,27,48,18,22,30,56}; printf("\nThese integers are as below:\n\n"); for (i=0; ia[j+1]) { m=a[j]; a[j]=a[j+1]; a[j+1]=m; } } } printf("\nThe sorted integers:\n\n"); for (i=0; i

贾汪区15083338741: C语言编程:用冒泡法对10和整数排序(从大到小). -
仪筠参芪: 根据你的要求,想编程如下:#include#define N 10 main() { int i,j,k; int a[N]; printf("\nplease input %d datas:\n\n",N); for(i=0;i scanf("%d",&a[i]); for(i=0;i for(j=0;j if(a[j] { k=a[j]; a[j]=a[j+1]; a[j+1]=k; } printf("\n\nthe sortde numbers are:\n\n"); for(i...

贾汪区15083338741: C语言 用一个函数来实现对10个数进行冒泡排序 -
仪筠参芪: #include "stdio.h" int exchange(char a[10]) //char {int i,j,t; for(i=0;i<10;i++)for(j=0;j<9-i;j++)if (a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;} return(1); } void main() {char a[10]; //charprintf("please put numbers:");scanf("%s",a);exchange(a);printf("%s",a); }你是对10个字符串排序把

贾汪区15083338741: 求教c语言二维数组的冒泡排序法? -
仪筠参芪: #include"stdio.h" void main() { int a[4][5]={7,5,3,4,34,67,76,9,4,8,4,54,33,46,7,4,1,44,109,10}; int i,j,k,s; for(i=0;i<4;i++) for(j=0;j<5;j++) { for(s=j;s<5;s++) { if(a[i][j]>a[i][s+1]) { k=a[i][s+1]; a[i][s+1]=a[i][j]; a[i][j]=k; } } } for(i=0;i<4;i++) { for(j=0;j<5;j++) ...

贾汪区15083338741: C语言编程序 用冒泡法排序 -
仪筠参芪: #include <stdio.h>void BSort(int ar[],int sz){ int i,j,tmp; for(i=0;i<sz-1;++i) for(j=i+1;j<sz;++j) if(ar[i]>ar[j]){ tmp = ar[i]; ar[i]=ar[j]; ar[j]=tmp; }}void main(){ int ar[5] = {3,4,1,2,5},i; BSort(ar,5); for(i=0;i<5;++i)printf("%d,",ar[i]);}

贾汪区15083338741: c语言用冒泡法选择法从键盘任意输入十个小写字母,按从大到小的顺序排序输出. -
仪筠参芪: 1 输入; 2 排序; 3 输出. 参考代码如下: #include <stdio.h> int main() {int a[10];//用来存数据int i,j,temp; for(i = 0; i < 10; i ++)//输入10个数.scanf("%d",&a[i]);for (j = 0; j < 9; j++)//标准冒泡法排序for (i = 0; i < 9- j; i++){if(a[i] > a[i + ...

贾汪区15083338741: 求一例简单C语言编写的冒泡程序.. -
仪筠参芪: 冒泡排序详细注释: /* 用冒泡排序法对一维整型数组中的十个数升序排序 */ #include <stdio.h> #include <stdlib.h>int main() { int i,j,t,a[10]; printf("Please input 10 integers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<9;i++) /* 冒泡法排序...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网