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

2022-06-02 05:21:51 字數 4950 閱讀 6246

1樓:

#include

#include

void px(char **p1)

}int main()

px(str);

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

printf("%s\n",str[i]);

return 0;}

2樓:匿名使用者

#include

#include

#include//---

void px(char *p1[5])

}int main()

px(str);

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

printf("%s\n",str[i]);

return 0;}

3樓:小c手遊

測試過了,對的

void px(char p1[32])

;for(j=0;j<4;j++)

for(i=j;i<5;i++)//i=j就行了,可以提高效率if(strcmp(p1[i],p1[j])<0)}int main()

;//這裡是5個空間大小為32的字元陣列

int i;

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

scanf("%s",str[i]);//這裡不用取地址px(str);

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

printf("%s\n",str[i]);

return 0;}

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

4樓:凌亂心扉

#include<iostream>

#include<string>

usingnamespacestd;

intmain()

{stringa1[5];//定義一個字串陣列。62616964757a686964616fe4b893e5b19e31333431353863

cin>>a1[0]>>a1[1]>>a1[2]>>a1[3]>>a1[4];

inti,j;

stringform;

for(i=0;i<4;i++)//通過氣泡排序進行排序{for(j=0;j<4-i;j++)

if(a1[j]>a1[j+1])

{form=a1[j];

a1[j]=a1[j+1];

a1[j+1]=form;}}

}for(i=0;i<5;i++)

{cout<<a1[i]<<endl;

}system("pause");

return0;}

5樓:聽不清啊

#include

#include

int main ()

{char s[5][100],*p[5],*t;

int n=5,i,j,k;

scanf("%d\n",&n);

for(i=0;i

c語言,輸入5個字串,按由小到大的順序輸出。非常急,求指導!

6樓:凌亂心扉

#define _crt_secure_no_warnings 1#include

#include

#include

void sort(char **p)}}}int main()

system("pause");

return 0;

}執行效果:

scanf函式用法:

scanf("輸入控制符",輸入引數);

功能:將從鍵盤輸入的字元轉化為「輸入控制符」所規定格式的資料,然後存入以輸入引數的值為地址的變數中。

用scanf()函式以%s格式讀入的資料不能含有空白符時,所有空白符都被當做資料結束的標誌。所以題中函式輸出的值只有空格前面的部分。

如果想要輸出包括空格在內的所有資料,可以使用gets()函式讀入資料。gets()函式的功能是讀取字串,並存放在指定的字元陣列中,遇到換行符或檔案結束標誌時結束讀入。換行符不作為讀取串的內容,讀取的換行符被轉換為字串結束標誌'\0'。

7樓:匿名使用者

我把scanf_s和strcpy_s改了下就好了。。,你那個拷貝的問題,t陣列的長度不夠。

長度小於5的話還能用用,大於5的話需要變成t[20]。

/*輸入5個字串,按由小到大的順序輸出。*/#include

#include

int main(void)

for (i = 1; i < 5; i++)}printf("after sorted:\n");

for (i = 0; i < 5; i++)puts(a[i]);

return 0;}

8樓:防禦

#include

#include

int main(void)

for (i = 1; i < 5; i++)}printf("after sorted:\n");

for (i = 0; i < 5; i++)puts(a[i]);

return 0;}

9樓:匿名使用者

char a[5][20], t[5];

改成char a[5][20], t[20];試試

10樓:匿名使用者

scanf_s("%s",a[i]);改成scanf_s("%s",a[i], 20);試試

程式設計,輸入5個字串(不含空格),用指標按字母順序由小到大對字串排序後輸出。

11樓:匿名使用者

#include

#include

#define m 5

#define n 20

void main()

}printf("排序後:\n");

for(i=0;i

c++程式設計 輸入5個字串,按英文字典排序,由小到大順序輸出。 求大神幫我讀一下下面寫的這個程式

12樓:木易致生

#include

#include

using namespace std;

int main()

/* 思想:

* 1.從當前字串開始,與之後的所有字串比較,找到最小(即按字母表

*   應該是最靠前的)的字串即為排在最前面的字串,則最小字串與

*   當前字串換位;

* 2.從下一個字串開始繼續上一步操作,直到只有一個字串剩餘為止,

*   (只有一個字串剩餘就沒什麼好比較的了,所以下面的迴圈i是從0到

*   4。)

*/for(i=0; i<4; i++)

cout << endl;

for(i=0; i<5; i++)//輸出字串

cout << t[i] << endl;

for(i=0; i<5; i++)//釋放空間

delete t[i];

return 0;}

c語言:輸入5個字串,按由小到大(我想應該是strcmp函式比較)的順序輸出

13樓:__________鄭晟

#include

#include

#define m 5

#define n 20

void main()

char str[m][n],temp[n];

int i,j;

for(i=0;iprintf("請輸入第%d個字串:",i+1);

scanf("%s",&str[i]);

printf("排序前:\n");

for(i=0;iprintf("第%d個字串:%s\n",i+1,str[i]);

for(j=0;jfor(i=0;i<=m-j-1;i++)if(strcmp(str[i],str[i+1])>0)strcpy(temp,str[i]);

strcpy(str[i],str[i+1]);

strcpy(str[i+1],temp);

printf("排序後:\n");

for(i=0;iprintf("第%d個字串:%s\n",i+1,str[i]);

下面是程式執行的截圖,供你參考。

14樓:adam失眠

#include "stdio.h"

#include "stdlib.h"

#include "string.h"

main()

for(i=0;i<5;i++) puts(a[i]);

system("pause");

return 0;}

編寫一段c語言程式,輸入5個字串;要求

15樓:

#include

#include

#include

#define n 5

int comp1(const void *a, const void *b)

int comp2(const void *a, const void *b)

int main()

printf("以下是按字串長度排序的結果:\n");

qsort(s, n, sizeof(char *), comp1);

for (i = 0; i < n; i++) puts(s[i]);

printf("以下是按ascii碼值排序的結果:\n");

qsort(s, n, sizeof(char *), comp2);

for (i = 0; i < n; i++) puts(s[i]);

return 0;}

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

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

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

include include int main void swap char p1,p2 你的程式排序結果是對的呀!怎麼不對了?你是不是對字串比大小不太瞭解啊?abc abboijuoiuj 因為c b,所以第二個字串第二個b後面就算有幾億個字元,也比第一個字元小。字串比大小是逐個字元比較的。小寫...

用c 解 輸入字串,按照升序輸出。要求字串必須

要求差不多,字串及個數可以自己輸入。版 include using namespace std void main int i,j char pt for i 0 i 4 i for j i 1 j 5 j if strcmp p i p j 0 cout after sorting 輸出排序後的結...