例82:C語言用指向指標的指標的方法對n個整數排序并輸出;要求將排序單獨寫成一個函式;n個整數在主函式中輸入,最后在主函式中輸出,
解題思路:讀者看著道題的時候,首先要觀察一下有什么規律,然后指向指標的指標在上一道練習題中已經有了鋪墊,讀者可以聯系上一道題去熟練使用指向指標的指標,
C語言源代碼演示:
#include<stdio.h>//頭檔案
int main()//主函式
{
void sort(int **point,int number); //sort排序函式宣告
int i,number,data[20],**point,*pstr[20]; //定義變數
printf("輸入要排序的個數number:");//提示陳述句
scanf("%d",&number);//鍵盤輸入
for(i=0;i<number;i++)
{
pstr[i]=&data[i]; //將第i個整數的地址賦予指標陣列pstr的第i個元素
}
printf("逐個輸入這%d個數:",number);//提示陳述句
for(i=0;i<number;i++)
{
scanf("%d",pstr[i]);//挨個輸入要排序的數
}
point=pstr;
sort(point,number);
printf("\n-------------------\n"); //提示陳述句
printf("輸出結果:\n");//提示陳述句
for(i=0;i<number;i++)
{
printf("%d ",*pstr[i]);//輸出排序后的結果
}
printf("\n");//換行
return 0;//主函式回傳值為0
}
void sort(int **point,int number)//自定義sort排序函式
{
int i,j,*temp;//定義變數
for(i=0;i<number-1;i++)
{
for(j=i+1;j<number;j++)
{
if(**(point+i)>**(point+j))//比較之后交換整數地址
{
temp=*(point+i);
*(point+i)=*(point+j);
*(point+j)=temp;
}
}
}
}
編譯運行結果:
輸入要排序的個數number:3
逐個輸入這3個數:1 8 5
-------------------
輸出結果:
1 5 8
--------------------------------
Process exited after 6.278 seconds with return value 0
請按任意鍵繼續. . .
我們常說“學而不思則罔”,和學習編程知識一樣,我們只有在學習的同時加以總結與思考,才能對編程有更系統和深入地了解,學到的知識才真正能為自己所用,
以上,如果你看了覺得對你有所幫助,就給小林點個贊,分享給身邊的人叭,這樣小林也有更新下去的動力,跪謝各位父老鄉親啦~
C語言開發工具
更多案例可以go公眾號:C語言入門到精通
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/259145.html
標籤:其他
