A. c语言选择排序程序中怎样输出每一步排序
可以定义一个函数专门用来输出当前的排序,要输出的话调用下就可以了、
B. 如何用C语言进行冒泡排序,并把每一次排序的结果输出
#include<stdio.h>
intmain()
{inta[10],i,j,t,i1;//定义数组;
for(i=0;i<10;i++)
{printf("请输入第%d次元素:",i+1);
scanf("%d",&a[i]);//给数组赋值;
}
for(i=0;i<9;i++)//10个数,进行9轮比较;
{for(j=0;j<9-i;j++)//第一个数比较9次,依次递减;
{if(a[j]>a[j+1])//交换值;
{t=a[j];
a[j]乱凳=a[j+1];
a[j+1]=t;
}
}
哗绝旅for(i1=0;i1<10;i1++)
{printf("宏扰%d",a[i1]);//输出数组的值;
}
printf(" ");
}
return0;
}
C. 用C语言对数组内元素乱序排列并输出
方法1:比较笨的办法是先排好。再在里面找。看是原来的第几个。 (代码我就不写了。)
方法2:有一个很快的方法,就是用快速排序排,
如果你深入的了解了快排,那么这个就很简单了。而且效率很高。
我给你写代码。
D. C语言。任意从键盘上输入两个正整数a,b交换值后打印输出
# include <液猛stdio.h>
int main(void)
{
int a,b,c;
printf("扒枣请输入整数a:\n");
scanf("%d",&a);
printf("请输入整数b:\n");
scanf("%d",&b);
printf("你输入的数是a:%d\tb:%d\n",a,b);
c=a;
a=b;
b=c;
printf("它们交换位置后春埋拆是a:%d/tb:%d\n",a,b);
retrun 0;
}
E. C语言交换排序法
t=a[i];
a[i]=a[max];
a[max]=t;这个是经典的交换方法。
取出最大值,进行交换,然后再比较啊
用数组小标进行比较,两数相比,将较大的数的下表赋予max,这里的max指的是小标,而不是具体的数组。
i如果与max不相等,将a[i]赋予a[max]
你这个程序基本是错的。没有输出。
F. 如何用C语言把冒泡排序每一次的排序过程体现出来
可以打印出来看嘛。程序里加输出 i,j,a[0]到a[9]:
#include <stdio.h>
int main()
{
int a[10];
int i, j,k, temp;
printf("Please input ten numbers: \n");
for (i = 0; i < 10; i++) scanf("%d", &a[i]);
for (i = 0; i <帆镇 9; i++) {
for (j = 0; j < 9 - i; j++) {
if (a[j] > a[j+1]) { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; }
printf("i=%d j=%d results: ",i,j);
for (k = 0; k < 10; k++) printf("派销 %d", a[k]);
printf("\n");
};};
for (i = 0; i < 10; i++) printf(" %d ", a[i]);
return 0;
}
例如:态羡粗
Please input ten numbers:
2 5 8 9 10 2 3 4 12 1
i=0 j=0 results: 2 5 8 9 10 2 3 4 12 1
i=0 j=1 results: 2 5 8 9 10 2 3 4 12 1
i=0 j=2 results: 2 5 8 9 10 2 3 4 12 1
...
i=0 j=8 results: 2 5 8 9 2 3 4 10 1 12
i=1 j=0 results: 2 5 8 9 2 3 4 10 1 12
i=1 j=1 results: 2 5 8 9 2 3 4 10 1 12
...
i=7 j=0 results: 2 2 1 3 4 5 8 9 10 12
i=7 j=1 results: 2 1 2 3 4 5 8 9 10 12
i=8 j=0 results: 1 2 2 3 4 5 8 9 10 12
G. C语言从键盘上输入任意10个整数,用交换法进行排序,并显示排序结果。
#include <stdio.h>
#define N 10
void main()
{
void swap_sort(int *a,int n);
int a[N];
int i,j,temp;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
printf("排序前数组序列:\n");
for(i=0;i<N;i++)
{
printf("%5d"液亩羡,a[i]);
}
printf("\n 排序闹拍前数组序耐答列:\n");
for(i=0;i<N-1;i++)
{
for (j=0;j<N-1-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
for(i=0;i<N;i++)
{
printf("%d",a[i]);
}
getchar();
}//zyk出品
H. c语言 :用交换排序法对10个数据进行排序 从小到大 怎么做啊
#include <stdio.h>
void main()
{
int a[10];
int i,j;
int tmp;
printf("请依次输入10个数字:\n");
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])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
printf("这10个数从小到大排序是:\n");
for(i=0;i<10;i++)
{
printf("%d\t",a[i]);
}
}