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]);
}
}