#include?stdio.h
創(chuàng)新互聯(lián)專注于中大型企業(yè)的成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)和網(wǎng)站改版、網(wǎng)站營銷服務(wù),追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術(shù)與技術(shù)開發(fā)的融合,累計客戶上千家,服務(wù)滿意度達(dá)97%。幫助廣大客戶順利對接上互聯(lián)網(wǎng)浪潮,準(zhǔn)確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運(yùn)用,我們將一直專注品牌網(wǎng)站設(shè)計和互聯(lián)網(wǎng)程序開發(fā),在前進(jìn)的路上,與客戶一起成長!
#include?string.h
void?sort_str(char?*str)?{?//?選擇排序
//待補(bǔ)全部分
int?i,j,k,t,len?=?strlen(str);
for(i?=?0;?i??len?-?1;?++i)?{
k?=?i;
for(j?=?i?+?1;?j??len;?++j)?{
if(str[k]??str[j])
k?=?j;
}
if(k?!=?i)?{
t?=?str[k];
str[k]?=?str[i];
str[i]?=?t;
}
}
}
int?main()?{
char?str[101];
scanf("%s",?str);
sort_str(str);//對字符串進(jìn)行排序
printf("%s\n",?str);
return?0;
}
你的程序沒錯,只不過這不是選擇法,是冒泡發(fā),選擇發(fā)如下:
void sort(int *a,int n)
{
int i,j,t,temp;
for(i=0;in-1;i++)
{
t=i;/初始定義t為未排序數(shù)的第一個
for(j=i+1;jn;j++)
{
if(*(a+t)*(a+j))/挑選出更大的數(shù)的位置,把他賦給t
t=j;
}
temp=*(a+i); /t是最大的那個數(shù)的位置,把他和未排序的第一個交換位置
*(a+i)=*(a+t);
*(a+t)=temp;
}
}
main()
{
int i,a[10],*p=a;
printf("input zhe array a:\n");
for(i=0;i10;i++)
scanf("%d",p++);
printf("\n");
p=a;
sort(p,10);
p=a;
printf("zhe sort array is:\n");
for(i=0;i10;i++)
printf("%d,",a[i]);
getch();
}
#include<stdio.h>
voidprint_result(float*,int);
voidSelect_Sort(float*,int);
intmain()
{
inti;
floatarray[10];
float*pointer;
printf("請輸入10個數(shù):\n");
for(i=0;i<10;i++)
{
scanf("%f",&array[i]);
}
pointer=array;
Select_Sort(pointer,10);
print_result(pointer,10);
return0;
}
voidprint_result(float*p,intn)
{//輸出結(jié)果
intk;
for(k=0;k<n;k++)
{
printf("%g\t",*(p+k));
}
}
voidSelect_Sort(float*pt,intn)
{//全用指針的選擇排序法
inti,j,k;
floattempnum;
for(i=0;i<n;i++){
k=i;
for(j=i+1;j<n;j++)
{
if(*(pt+j)>*(pt+i))
{
k=j(luò);
}
}
tempnum=*(pt+i);
*(pt+i)=*(pt+k);
*(pt+k)=tempnum;
}
}
擴(kuò)展資料:
其它方法:
voidSelectSort(intarr[],intn)
{
printf("\n選擇排序法過程:\n");
inti,j,k,l,t;
for(i=0;i<n;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(arr[j]<arr[k])
{
k=j(luò);
}
}
if(k?。絠)
{
t=arr[i];arr[i]=arr[k];arr[k]=t;
}
for(l=0;l<n;l++)
{
printf("%3c",arr[l]);
}
printf("\n");
}
}