當前位置:成語大全網 - 新華字典 - 輸入三個整數,按由小到大的順序輸出,然後將程序改為:輸入三個字符串,按由小到大的順序輸出。

輸入三個整數,按由小到大的順序輸出,然後將程序改為:輸入三個字符串,按由小到大的順序輸出。

#include <stdio.h>

#include <string.h>

void CompareInt(int* a, int* b, int* c)

{

if( *a >= *b && *a >= *c )

{

if( *b >= *c )

{

printf("%d %d %d", *c, *b, *a);

}

else

{

printf("%d %d %d", *b, *c, *a);

}

}

if( *b >= *a && *b >= *c )

{

if( *a >= *c )

{

printf("%d %d %d", *c, *a, *b);

}

else

{

printf("%d %d %d",*a, *c, *b);

}

}

if( *c >= *a && *c >= *b )

{

if( *a >= *b )

{

printf("%d %d %d",*b, *a, *c);

}

else

{

printf("%d %d %d",*a, *b, *c);

}

}

}

void CompareChar(char* a, char* b, char* c)

{

bool key = false;

if( (strcmp(a,b)>=0 && strcmp(a,c)>=0) )//strcmp(a,c)==0?

{

if(strcmp(b,c)>=0)

{

printf("%s %s %s",c, b, a);

key = true;

}

else

{

printf("%s %s %s",b, c, a);

key = true;

}

}

if( (strcmp(b,a)>=0) && (strcmp(b,c)>=0) )

{

if(key)

{}

else if(strcmp(a,c)>=0)

{

printf("%s %s %s",c,a,b);

key=true;

}

else

{

printf("%s %s %s",a,c,b);

key=true;

}

}

if((strcmp(c,a)>=0) && (strcmp(c,b)>=0))

{

if(key)

{}

else if(strcmp(a,b)>=0)

{

printf("%s %s %s",b,a,c);

}

else

{

printf("%s %s %s",a,b,c);

}

}

}

int main(void)

{

int a = 0, b = 0, c = 0;

printf("please input three numbers:");

scanf("%d %d %d",&a, &b, &c);

CompareInt(&a, &b, &c);//這壹部分以前是註釋掉的。

char a1[20],b1[20],c1[20];

printf("\nplease input three strings:");

scanf("%s%s%s",&a, &b, &c);

CompareChar(a1, b1, c1);//?

return 0;

}

strcmp(a,b)的返回值有三種可能:-1,0,1。分別表示比較的字符串a<b,a=b,a>b(這裏的符號表示字符串的字典順序)。所以(strcmp(a,b)==1||strcmp(a,b)==0就相當於整數的a >= b

按照字符串的字典順序frank<true<zjx,比較的規則是先比第壹個字母,如果相同比第二個字母。這幾個字符串第壹個字母就可以確定順序 f < t < z

if (key)這個key是壹個標誌位,如果之前已經比較出來了就設置為true,如果之前的if裏已經設置好了,那麽後面的if就不會執行任何東西了。這種寫法完全沒有必要,用if else嵌套壹下會更好。

擴展資料:

非格式化順序I/O處理器假定是128字節的記錄,任何非格式化的壹個順序I/O文件的I/O把記錄指針定位在128字節物理記錄的結束處,如果所讀的字節數不同於原來的字節數,就可能產生不希望的結果。

例如:假定幾個180字節的記錄寫入壹個非格式化順序文件。並假定有100個字節是從文件中第180個字節的記錄中讀,那麽,這100個字節的記錄被輸入並賦值給I/O列表中的元素。記錄指針則定位在下壹個128字節物理記錄的開始。註意,這將導致在隨後的讀語句中開始讀時,讀了額外的數據,而不會跳過額外的數據。

避免這種情況發生的最好方法是保持輸入記錄和輸出記錄長度壹樣。如果遵守簡單的預防措施,則利用非格式化順序I/O就可以傳輸大於128字節的記錄。?

百度百科-順序輸入