| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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)                                                        ;
 
 - }
 
  复制代码 
 
 
 |   
 
 
 
 |