如何解决为什么代码在这个字符比较中没有产生任何结果?
晚上,抱歉初学者的问题,但我必须做一个代码,接收 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
函数。您对 %s
使用 k
格式说明符而不是 %d
。只需将该行更改为:
printf("Caso %d: %s \n",k,en[i]);
此外,while
条件 i<8
应更改为 i<7
,因为有 7 种情况而不是 8 种情况。
至于 scanf
,不要认为它有多大改进,但您也可以使用 for
循环。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。