首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么代码在这个字符比较中没有结果?

为什么代码在这个字符比较中没有结果?
EN

Stack Overflow用户
提问于 2021-02-18 22:11:59
回答 1查看 52关注 0票数 0

晚上,很抱歉,初学者的问题,但我必须做一个代码,收到7种不同的语言敬语,比较一个数据库,如果它们匹配,告诉哪种语言敬语,如果他们没有,告诉用户的语言是未知的。

我想我理解这个问题,但是下面的代码没有显示任何结果,只是结束了,有人能告诉我为什么吗?我知道这是非常粗略的编码,但找不到准确的错误。(我们也非常希望能用一个替代扫描程序中的多个变量的方法)。

代码语言:javascript
复制
#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++;
    }
    }

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-19 13:58:46

问题在于您的printf函数。您使用的是%s格式说明符,用于k而不是%d。只需将这一行改为:

代码语言:javascript
复制
printf("Caso %d: %s \n",k,en[i]);

while条件i<8应改为i<7,因为有7例,而不是8例。

至于scanf,不要认为这是一个很大的改进,但是您也可以使用for循环。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66268911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档