#include stdio.h
專注于為中小企業(yè)提供網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)湖北免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
#include stdlib.h
#include time.h#define MAXlen 20void shell_sort(int *x, int n) { // 希爾排序
int h, j, k, t;
for (h = n / 2; h 0; h = h / 2) { // 控制增量
for (j = h; j n; j++) { t = *(x + j);
for (k = j - h; (k = 0 t *(x + k)); k -= h) {
*(x + k + h) = *(x + k);
}
*(x + k + h) = t;
}
}
}
int main() {
int i;
int iArr[MAXlen];
srand((unsigned int)time(NULL));
printf("\n排序前:\n");
for(i = 0 ; i MAXlen ; i++) {
iArr[i] = (unsigned int)rand() % 1000;
if(i % 10 == 0) printf("%\n");
printf("%5d",iArr[i]);
}
printf("\n");
shell_sort(iArr,MAXlen);
printf("\n排序后:\n");
for(i = 0 ; i MAXlen ; i++) {
if(i % 10 == 0) printf("%\n");
printf("%5d",iArr[i]);
}
printf("\n\n");
return 0;
}
樓主,我只能實(shí)現(xiàn)1、4,我想,在C中應(yīng)該不存在有2,3兩種情況吧,稍后來寫代碼。
第一種:
#includestdio.h
void Calculate(float *pfloat);
int main()
{
float a[10];
int i;
for(i=0;i10;i++)
{
printf("Please Enter %d Data\n",i+1);
scanf("%f\n",a[i]);
}
Calculate(a);
printf("Calculate After");
for(i=0;i10;i++)
{
printf("%f ",a[i]);
}
getch();
return 0;
}
void Calculate(float *pfloat)
{
int i,j;
float ftemp;
for(j=0;j10;j++)
{
for(i=1;i10-j;i++)
{
if (*(pfloat+i-1) *(pfloat+i))
{
ftemp=*(pfloat+i-1);
*(pfloat+i-1)= *(pfloat+i);
*(pfloat+i)=ftemp;
}
}
}
}
第四種
#includestdio.h
void?Calculate(float?*pfloat);
int?main()
{
float?a[10],*pfloat;
int?i;
for(i=0;i10;i++)
{
printf("Please?Enter?%d?Data\n",i+1);
scanf("%f\n",a[i]);
}
pfloat=a;
Calculate(pfloat);
printf("Calculate?After");
for(i=0;i10;i++)
{
printf("%f?",a[i]);
}
getch();
return?0;
}
void?Calculate(float?*pfloat)
{
int?i,j;
float?ftemp;
for(j=0;j10;j++)
{
for(i=1;i10-j;i++)
{
if?(*(pfloat+i-1)??*(pfloat+i))
{
ftemp=*(pfloat+i-1);
*(pfloat+i-1)=?*(pfloat+i);
*(pfloat+i)=ftemp;
}
}
}
}
#include
stdio.h
void
Sort(
int
*s,
int
n
)
{
int
*p
=
s;
//定義一個指向數(shù)組首地址的指針
int
*q,
tmp;
for(
;
p
s+10;
p++
)
//當(dāng)指針移動到數(shù)組的末端結(jié)束
{
for(
q
=
p
;
q
s+10;
q++
)
//按照插入排序的方式執(zhí)行
{
if(
*q
*p
)
{
tmp
=
*p;
*p
=
*q;
*q
=
tmp;
}
}
}
}
int
main()
{
int
i;
int
s[10]
=
{9,8,7,6,5,4,3,2,1,0};
Sort(s,10);
//調(diào)用排序函數(shù)
for(
i
=
0;
i
10;
++i
)
//輸出排序后的結(jié)果
{
printf("%d
",s[i]);
}
printf("\n");
return
0;
}
/*?PRESET?CODE?BEGIN?-?NEVER?TOUCH?CODE?BELOW?*/
#include?stdio.h
#include?stdlib.h
/*?run?this?program?using?the?console?pauser?or?add?your?own?getch,?system("pause")?or?input?loop?*/
char?*resort(char?*a)
{
char?cMin,?cSwap;
int?i,?j,?iIndex,?iSize?=?strlen(a);
for(i=0;?iiSize;?i++)
{
cMin?=?127;
for(j=i;?jiSize;?j++)
{
if(a[j]?=?cMin)
{
cMin?=?a[j];
iIndex?=?j;
}
}
cSwap?=?a[i];
a[i]?=?cMin;
a[iIndex]?=?cSwap;
}
return?a;
}
int?main(int?argc,?char?*argv[])
{
char?a[100];
gets(a);
puts(resort(a));
return?0;
}
完整程序如下:
#includestdio.h
void sort_string(char **p,int n){
int i,j;
char s[80];
for (i=0;in-1;i++){
for (j=i+1;jn;j++){
if (strcmp(*(p+i),*(p+j))0){
strcpy(s,*(p+i));strcpy(*(p+i),*(p+j));strcpy(*(p+j),s);
};};};
}
int main()
{
char *str[]={ "teacher", "student", "maneger", "employee", "telicent" };
int i,n=5;
sort_string(str,n);
for (i=0;in;i++) printf("%s\n",str[i]);
return 0;
}
p是int類型指針,指向數(shù)組a的第1個元素即一個一維的數(shù)組{1,2,3}首地址所以p[1]相當(dāng)于a[0][1]所以printf("%d\n",p[1]);
輸出2 。 int **pp =pa 是聲明了一個指向pa的指針,而pa又是指向a首地址的int類型指針。pa指向的是a的第一維,pa[0] = a[0] ,pp[2][1]相當(dāng)于a[2][1]而a數(shù)組的[2]中只初始化了[2][0]位置的7,那[2][1]位置就是默認(rèn)的值0,所以printf("%d\n",pp[2][1]);
輸出0
名稱欄目:c語言用指針函數(shù)數(shù)組排序 c語言中數(shù)組排序方法
地址分享:http://www.rwnh.cn/article40/hhspho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、虛擬主機(jī)、網(wǎng)站建設(shè)、建站公司、全網(wǎng)營銷推廣、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)