晚上,很抱歉,初学者的问题,但我必须做一个代码,收到7种不同的语言敬语,比较一个数据库,如果它们匹配,告诉哪种语言敬语,如果他们没有,告诉用户的语言是未知的。
我想我理解这个问题,但是下面的代码没有显示任何结果,只是结束了,有人能告诉我为什么吗?我知道这是非常粗略的编码,但找不到准确的错误。(我们也非常希望能用一个替代扫描程序中的多个变量的方法)。
#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++;
}
}谢谢
发布于 2021-02-19 13:58:46
问题在于您的printf函数。您使用的是%s格式说明符,用于k而不是%d。只需将这一行改为:
printf("Caso %d: %s \n",k,en[i]);while条件i<8应改为i<7,因为有7例,而不是8例。
至于scanf,不要认为这是一个很大的改进,但是您也可以使用for循环。
https://stackoverflow.com/questions/66268911
复制相似问题