[英]Sorting Names Alphabetically In C
我的電腦書中有以下代碼:
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main(void)
{
clrscr();
char list[10][20],name[20];
int i,j;
for(i=0;i<10;i++)
{
printf("\nEnter the Name of Student %d",i+1);
gets(&list[i][0]);
}
for(i=0;i<10-1;i++)
for(j=0;j<10-1;j++)
if(strcmp(&list[j][0],&list[j+1][0])>0)
{
strcpy(name,&list[j][0]);
strcpy(&list[j][0],&list[j+1][0]);
strcpy(&list[j+1][0],name);
}
printf("\nThe Sorted Name List is :");
for(i=0;i<10;i++)
printf("\n%s",&list[i][0]);
getche();
}
我想知道為什么數組“列表”被聲明為列表[10] [20],但是當用於存儲名稱時,它僅使用1個循環,即僅i和第二個索引或下標始終保持為零聲明中是20?
“列表”旨在用作c個字符串的數組,但是每個這樣的字符串本身又是一個char數組,因此您將獲得一個二維數組,其中“外部”維表示字符串,而“內部”維表示字符串使數組變暗以存儲字符串(最大長度為20個字符)。
當gets必須填寫這樣的字符串時,它已經使用了整個“內部”維,因此您只需要遍歷“外部”維。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.