用c语言编写,用起泡法对15个数据组成的数组进行排序 从大到小

作者&投稿:闫要 (若有异议请与网页底部的电邮联系)
c语言 用起泡法给字符数组排序~

你的排序两个for有问题,应该改为:
#include
void paixu(char x[])
{
int a,i,j;
char t;
a=strlen(x);
for(i=0;i<a;i++)
{for(j=0;j<i;j++)
if(x[j]>x[j+1])
{
t=x[j];
x[j]=x[j+1];
x[j+1]=t;
}}
}
void main()
{
char str[255];
gets(str);
paixu(str);
printf("%s",str);
}

有两个错误,第一,paixu()函数,外层循环i从1开始到n-1
第二,把*(p)改为*(p+j),把*(p+1)改为*(p+j+1)
main函数没问题。
以下程序是经过测试正确运行的,可供参考。

#include

int paixu(int *p,int n)
{
int i,j,t;
for(i=1; i<n; i++)
for(j=0; j<n-i; j++)
if(*(p+j)<*(p+j+1))
{
t=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=t;
}
}
void main()
{
int *i,a[5];
printf("input:
");
for(i=a; i<a+5; i++)
scanf("%d",i);
for(i=a; i<a+5; i++)
printf("%d
",*i);
paixu(a,5);
for(i=a; i<a+5; i++)
printf("%d
",*i);
}

#include <stdio.h>
int main(){
int array[10]={1,10,9,2,3,8,7,6,4,5};
for(int i=0;i<10;i++)
for (int j=0;j<10-i-1;j++)
{
if (array[j]<array[j+1])
{
int a=array[j+1];
array[j+1]=array[j];
array[j]=a;
}
}
for(i=0;i<10;i++)
printf("%d ",array[i]);
return 0;
}


C语言程序结构的设计方法有哪些?
方法1:(利用比较法)方法2:(利用起泡法)方法3:(利用函数的模块化设计)

输入十个英文人名,并按音序用起泡法由高到低排序。 c语言
include <stdio.h> include <string.h> void sort(char name[][20], int n){ char temp[20];int i, j;for(i = 0; i < n-1; i++)for(j = i+1; j < n; j++)if(strcmp(name[i], name[j]) < 0){ strcpy(temp, name[i]);strcpy(name[i], name[j]);strcpy(name[...

C语言 起泡法
本程序是由小到大排序;语句:for (j=1;j<=9;j++)for(i=1; i<=10-j; i++)是先内循环再外循环;j是为循环语句for(i=1; i<=10-j; i++)判断数组a[i]与a[i+1]大小时用的辅助“标记”。当j=1时,for(i=1; i<=10-j; i++)语句中的i循环9次(因为10-j=9),把数组a...

c语言问题请教!
include <stdio.h>void BubbleSort(int r[], int n) \/\/起泡排序{int temp, exchange, bound;exchange = n; \/\/第一趟起泡排序的范围是r[0]到r[n-1] while (exchange) \/\/仅当上一趟排序有记录交换才进行本趟排序{bound = exchange;exchange = 0;for (int j = 1; j<bound; ...

大一C语言 起泡法
include <stdio.h> void main(){ int a[999];(不好意思这里有一点问题,我想了好久也不能解决,但我想你要求的书也不会太多,况且也能改动的)int i,j,t,n;printf("输入你要排序的数字个数\\n");scanf("%d",&n);printf("input %d numbers:\\n",n);for(i=0;i<n;i++)scanf("%d"...

c语言怎样实现99乘法表格
方法1:(利用比较法)方法2:(利用起泡法)方法3:(利用函数的模块化设计)

c语言中冒气泡法一直学不懂,请根据该图讲的简单详细一点。将对了有十 ...
起泡法有两种方式,一种是每次循环,将最大的元素沉底;一种是每次外层循环将最小的元素升起。你这里给出的算法就是后者。外层循环对应与你给出的算法里的i的循环,从1到n-1,循环n-1次,对应每一个i的值,都将有一个最小的元素上浮到第i-1个位置,并且i-1前面的元素已经从小到大有序。比如...

C语言(简单的)编写程序输入一维整形数组a[10],将其按由小到大排序后输 ...
这个应该用起泡法排序算法。include<stdio.h> int main(){ int a[10];int i,j,k;printf("input 10 numbers:\\n");for(i=0;i<10;i++){\/\/输入十个数,一次循环输入10次 scanf("%d",&a[i]);printf("\\n");\/\/换行 for(j=0;j<9;j++)\/\/从小到大换行经典方法四行 for(i=0;i<...

C语言冒泡排序法代码是什么?
2、为了实现效果,我们得先定义一组待排序的数列以及各个变量。具体情况如下图:3、算法的实现,具体情况如图:4、运行结果显示。具体情况如图:5、按照上面的程序,在第五趟(i=5)起泡时,计算机不仅要对“1,5,6,4”两两进行比较并排序,还要对“7,8,9,13”进行两两比较并排序,而“7,8...

编写C语言程序,把一个数组按从小到大的次序排列起来
include<stdio.h>\/\/输入输出头文件 int main(){ int number[10], New_number[10];\/\/定义数组的数据类型为整型 int i, j, m, n, k;\/\/定义变量的数据类型为整型 printf("input 10 <int> number:");\/\/文字提示 for (i = 0; i <= 9; i++)\/\/用循环输入数值给数组number并赋给...

新浦区17571458944: C语言 用起泡发(货称冒泡法)对15.5.9.2.7.11.8.3.12.1共10个整数由小发到大排序.数组方法 -
龙皆奥先: #include void sort(int *a,int n){//冒泡排序函数 int i,j,t; for(i=0;i for(j=0;j if(a[j]>a[j+1]){ t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } } void print(int *a,int n){//打印函数 int i; for(i=0;i printf("%d ",a[i]); } printf("\n"); } int main(){ int a[]={15,5,9,2,7,11,8,3,12,1}; printf("...

新浦区17571458944: 用C语言写一个函数,用起泡法对输入的10个字符按小到大顺序排列 -
龙皆奥先: #include<stdio.h> int main() { int i,j,t,a[10]; for(i=0;i<10;i++) scanf("%d",&a[i]); 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; } printf("%d",a[0]); for(i=1;i<10;i++) printf(" %d",a[i]); printf("\n"); return 0; }

新浦区17571458944: C语言编程,写一个函数,用“起泡法”对输入的10个字符按由小到大顺序排列 -
龙皆奥先: #include main() { int i,j; char a[]={"gihdlfazrm"}; char t; printf("排序前的序列:"); for(i=0;ia[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } printf("排序后的序列:"); for(i=0;i

新浦区17571458944: 用起泡法对数组中15个实数进行排序 -
龙皆奥先: 代码如下: #include <stdio.h> void main() { int a[15]; int i, j, t; printf("input 15 numbers:\n"); for (i = 0; i < 15; i++) scanf("%d", &a[i]); printf("*************************************************\n"); for(j = 15; j > 0; j--) { for(i = 0; i < j - 1; i++) if (a[i] > a[i + ...

新浦区17571458944: 用C语言编写冒泡法比较10个数的大小的程序. -
龙皆奥先: 举几个例子: 1.输入10个整数存入数组中,然后把它们从小到大排列并放在同一数组中.(思路:先找出最小的,放在第一个位置,为了防止把原先的数覆盖掉,可以把原先的第一个数和最小数的位置互换). main() { int array[10]; int i,j,min,...

新浦区17571458944: 用C语言写一个函数用“起泡”法对输入的10个字符安有小到大顺序排列 -
龙皆奥先: 冒泡法 #includeint main() { int a[10] = {10,23,2,24,20,9,22,8,53,100}; int i,j,t; for(i = 9;i >= 0;i--) for(j = 0;j< 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]); printf("\n"); return 0; }

新浦区17571458944: C语言程序 写一个起泡法对10个字符排序的函数
龙皆奥先: #include<stdio.h> void main() { void range(char b[],int n); char a[10]; int i=10; gets(a); range(a,i); puts(a); putchar('\n'); } void range(char b[],int n) { int i,j,t; for(j=n-1;j>0;j--) for(i=0;i<j;i++) if(b[i]>b[i+1]) { t=b[i]; b[i]=b[i+1]; b[i+1]=t; } }

新浦区17571458944: C语言编程:用冒泡法对10个整数排序.急
龙皆奥先: void main(){ int A[10]; int i,j; int temp; for(i = 0;i<10;i++) scanf("%d",&A[i]); for(i = 0;i<10;i++) for(j=i+1;j<10;j++) if(A[i]>A[j]) { temp = A[i]; A[i] = A[j]; A[j] = temp; } }

新浦区17571458944: 用起泡法对十个数据排序(数组实现) -
龙皆奥先: 用C语言帮你写了一个:#include #define MAX_CNT 10 int main() { int arr[MAX_CNT] = {0}; // 输入 printf("请输入10个整数:\n"); for (int i=0; i { scanf("%d", &arr[i]); } // 排序 for (int i=0; i { for (int j=i+1; j { if (arr[i] > arr[j]) { int temp = arr[i]; ...

新浦区17571458944: C语言编程:输入10个数据放入一维数组中,用泡排法对其排序并输出.
龙皆奥先: #include"stdio.h" main() { int a[10]; int i,j,t; for(i=0;i&lt;10;i++) scanf("%d",&amp;a[i]); for(i=1;i&lt;10;i++) for(j=0;j&lt;10-i;j++) if(a[j]&gt;a[j+1]) {t=a[j+1];a[j+1]=a[j];a[j]=t;} for(i=0;i&lt;10;i++) printf("%d ",a[i]); } 小弟不才,高一新手,如有错误请改正!

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