輸入字串,按由小到大的順序輸出。(用指標方法處理)

2021-05-17 16:37:21 字數 3233 閱讀 7494

1樓:問明

#include

#include

int main()

void swap(char*p1,*p2)

2樓:

你的程式排序結果是對的呀!怎麼不對了?

你是不是對字串比大小不太瞭解啊?

「abc">"abboijuoiuj」,因為c>b,所以第二個字串第二個b後面就算有幾億個字元,也比第一個字元小。

字串比大小是逐個字元比較的。小寫》大寫,如a>a;從a到z一次增大。

例如:abc,abbc,aabzzzzzz比大小,

1步.先比較第一個字元,大家都是a,不能比較出來,就看下一個字元,

2步.aabzzzzzz的第二個字元是a,其他的第二個字元都是b,那後面就不比了,aabzzzzzz就是最小了,哪怕它再長,也是最小;

3步.還剩abc和abbc比大小,同理,abc第三個字元是c,比abbc的第三個字元b大,所以abc>abbc

最後結果是:aabzzzzzzabbc>abc,那就從長度上做文章吧!

預設的比大小規則是我說的那種。不知對你有幫助沒。你的程式是對的!

3樓:

#include

#include "string.h"

int main(void)

輸入3個字串,按從小到大的順序輸出。要求使用指標的方法進行處理。

4樓:匿名使用者

#include

#include

#include

void swap(char **p1, char **p2)int main()

for(int i = 0; i < 3; i++) }}printf("比較大小後:\n");

for(int i = 0; i < 3; i++)return 0;}

5樓:

錯得太多,

襲不好梳理;重寫一個供參考。

#include "stdio.h"

#include

int main(int argv,char *argc)執行樣例:

請輸入三個字串,按由小到大的順序輸出。(用指標方法處理) 出錯,求高手

6樓:匿名使用者

#include

2 #include

3 void change(char *a,char *b)4 12 }

13 14 void exchange(char *a,char *b,char *c)

15 20

21 int main()22

c語言 用指標方法 輸入3個字串 按由小到大順序輸出

7樓:問明

#include

#include

int main()

void swap(char*p1,*p2)

8樓:風若遠去何人留

可以使用三個陣列,或者是一個二維陣列來儲存字串,同時定義一個指標陣列,指向三個字串的首地址。然後對指標陣列進行排序。

**如下:

#include

#include

int main()

;int i,j;

for(i = 0; i < 3; i ++)scanf("%s", p[i]);//輸入三個字串。

for(i = 0; i < 2; i ++)//排序。

for(j = i+1; j < 3; j ++)}for(i = 0; i < 3; i ++)printf("%s\n", p[i]);//輸出排序後的三個字串。}

9樓:夏天的小紅花

#include

#include

int main()

10樓:佔座專用

char *p1=null,*p2=null,*p3=null;

p1,p2,p3都沒有分配空間,所以不能儲存資料。

scanf("%s\n",p1); //\n別放在這,這是輸入,不是輸出

if(strcmp(p1,p2)>0)

//字串不能這樣簡單的交換,用strcpy,當然t也要分配空間

11樓:匿名使用者

指標沒有分配空間可以使用嗎?

定義指標是不分配空間的,在使用前你得初始化,讓它指向確定的地址才可以後續使用。

函式中是沒法更改傳入變數指標地址的!但可以更改其中的內容.

你的比較好像有問題,得不到所需要的:「從小到大」

#include "stdio.h"

#include "string.h"

int main(int argc, char* argv),ch2[20]=,ch3[20]=;

p1=ch1;

p2=ch2;

p3=ch3;

printf("no1:");

scanf("%s",p1);

fflush(stdin);

printf("no2:");

scanf("%s",p2);

fflush(stdin);

printf("no3:");

scanf("%s",p3);

fflush(stdin);

if(strcmp(p1,p2)>0)

if(strcmp(p1,p3)>0)

if(strcmp(p2,p3)>0)

printf("%s\n%s\n%s\n",p1,p2,p3);

return 0;}

c語言:輸入3個字串,按由大到小的順序輸出!要求用指標方法處理!該怎麼寫**,跪求!

12樓:匿名使用者

//在之前的code上做了修改,測試通過,如果有疑問,歡迎交流#include

#include

#include

#define n 100

void bubblesort_str(char **list,int len) //氣泡排序}}

int main()

bubblesort_str(names, 3);

for(i = 0; i<3; i++)

for(i = 0; i<3;i++)

free(names);}

c語言輸入字串按由小到大的順序輸出非

define crt secure no warnings 1 include include include void sort char p int main system pause return 0 執行效果 scanf函式用法 scanf 輸入控制符 輸入引數 功能 將從鍵盤輸入的字元轉化...

求助 輸入字串,由小到大排序輸出

include include void px char p1 int main px str for i 0 i 5 i printf s n str i return 0 include include include void px char p1 5 int main px str for ...

輸入字串,將這字串按從小到大的順序排列後輸出(要求使用選擇法排序)

include iostream include string usingnamespacestd intmain stringa1 5 定義一個字串陣列。62616964757a686964616fe4b893e5b19e31333431353863 cin a1 0 a1 1 a1 2 a1 3...