簡體   English   中英

在C中按字母順序對名稱進行排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM