|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我的代码被学校系统判定为运行错误,可在虚拟机上又可以运行,不知道为什么?
#include<stdio.h>
#include<string.h>
int main()
{
char A[][5] = {"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII"};
char B[5];
int i = 0;
while((B[i] = getchar()) != '\n')
{
i++;
}
B[i] = '\0';
for(i=0;;i++)
{
if(strcmp(A[i], B) == 0)
{
printf("%d\n", i+1);
break;
}
}
return 0;
}
vi test56.c
gcc test56.c && ./a.out
VIII
8
本帖最后由 jackz007 于 2022-11-28 17:02 编辑
- #include <stdio.h>
- #include <string.h>
- int main(void)
- {
- char A[][5] = {"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII"} ;
- char B[5] ;
- int i = 0 ;
- for(i = 0 ; (B[i] = getchar()) != '\n' && i < 4 ; i ++) ; // 必须约束 B 的长度,输入不可超过 4 个字符
- B[i] = '\0' ;
- for(i = 0 ; i < 12 && strcmp(A[i] , B) ; i ++) ; // 必须设置循环终止条件,否则,一旦在 A 中没有找到 B,就会死循环
- if(i < 12) printf("%d\n" , i + 1) ;
- }
复制代码
|
|