本題要求通過input()函式實作輸入若干個單詞(每單詞的長度不超過20,單詞的最大數目不超過10)。輸入程序中遇到單詞*END* 則提前結束輸入(*END*不作為后面排序的單詞),或單詞數目達到10個也結束。然后呼叫函式paixu(),對這若干個單詞按字典順序進行排序,最后呼叫函式printArr()輸出排序后的單詞,輸出的單詞之間以空格進行分隔,最后一個單詞后面沒有空格。
#include<stdio.h>
#include<string.h>
int input(char ar2[][21]);
void paixu(char ar2[][21], int n);
void printArr(char ar2[][21], int n);
int main(void)
{
char arr[10][21]={0};
int n;
n=input(arr);
paixu(arr,n);
printArr(arr,n);
return 0;
}
/* 請在這里填寫答案 */
uj5u.com熱心網友回復:
自己先寫寫,用scanf %s或fgets,要不就是getchar()回圈uj5u.com熱心網友回復:
int input(char ar2[][21]){
int i=0;
while(i<10&&ar2!='*END*')
{
gets(ar2);
i++;
}
return i;
}
void paixu(char ar2[][21], int n)
{
int i,j,t;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n-1;j++)
{
if(ar2[j+1][0]<=ar2[j][0])
{
t=ar2[j][0];
ar2[j][0]=ar2[j+1][0];
ar2[j+1][0]=t;
}
}
}
}
void printArr(char ar2[][21], int n)
{
int i;
char ch=' ';
for(i=0;i<n;i++)
{
if(i==(n-1))
{ch='\n';}
printf("%d%c",ar2[i][21],ch);
}
return ar2;
}
錯了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/229593.html
標籤:C語言
下一篇:關于C語言的排序程式的細節問題
