为什么代码在此字符比较中没有产生任何结果?
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
函数上。您正在为 k
使用 %s
格式说明符而不是 %d
。只需将该行更改为:
printf("Caso %d: %s \n",k,en[i]);
此外,while
条件 i<8
应更改为 i<7
,因为有 7 个案例而不是 8 个。
至于 scanf
,不要认为它有多大改进,但您也可以使用 for
循环。
晚上,对于初学者的问题,我很抱歉,但我必须编写一个代码,接收 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
函数上。您正在为 k
使用 %s
格式说明符而不是 %d
。只需将该行更改为:
printf("Caso %d: %s \n",k,en[i]);
此外,while
条件 i<8
应更改为 i<7
,因为有 7 个案例而不是 8 个。
至于 scanf
,不要认为它有多大改进,但您也可以使用 for
循环。