簡體   English   中英

為什么代碼在這個 char 比較中沒有產生任何結果?

[英]Why does code yields no results on this char comparison?

晚上,對不起初學者的問題,但我必須做一個代碼,接收不同語言的 7 個稱呼,與數據庫進行比較,如果它們匹配,請告訴該稱呼是哪種語言,如果不匹配,請告訴用戶語言不詳。

我想我理解了這個問題,但是我下面的代碼沒有顯示任何結果,只是關閉了,有人能告訴我為什么嗎? 我知道這是非常粗略的編碼,但無法准確找到錯誤。 (告訴我scanf中的多個變量的替代品也將不勝感激)。

#include<stdio.h>
#include<string.h>
int main(){
    char en[7][15];
    char id[7][15] = {"HELLO","HOLA","CIAO","HALLO","BOUNJOUR","ZDRAVSTVUJTE","."};
    char re[7][15] = {"INGLES","ESPANOL","ITALIANO","ALEMAN","FRANCES","RUSO","NLS"};
    scanf("%s %s %s %s %s %s %s",en[0],en[1],en[2],en[3],en[4],en[5],en[6]);
    int i = 0,j=0,m=1,k=0;
    while(i<8){
        for(j=0;j<7;j++){
            m=strcmp(en[i],id[j]);
            if(m==0 || j==6){
                strcpy(en[i],re[j]);
                k=i+1;
                printf("Caso %s: %s /n",k,en[i]);
                break;
            }
            }
            i++;
    }
    }

謝謝

問題是你的printf function。 您正在為k而不是%d使用%s格式說明符。 只需將該行更改為:

printf("Caso %d: %s \n",k,en[i]);

此外, while條件i<8應更改為i<7 ,因為有 7 個案例而不是 8 個。

至於scanf ,不要認為這是一個很大的改進,但您也可以使用for循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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