解析: 基本思路如下:
S1: 输入 a,如果a = 0则退出
S2: 接受字符串temp 和 a
S3: 如果temp = “right on”,则执行S5,否则执行S4
S4: 将a记录于数组num中,将temp表示为 ‘>’ 或 '<' 字符记录于ch中,继续执行S2操作
S5: 遍历数组num,比较num[i]与a的大小符号是否与 ch[i]显示的一致
S6: 输出结果
因为这是我AC的第100题,所以写得比较详细。
1 #include <stdio.h> 2 #include <string.h> 3 int main() 4 { 5 int num[1000], i, a, n, f; 6 char ch[1000], temp[15]; 7 while(scanf("%d\n", &a) == 1 && a){ 8 gets(temp); 9 i = 0; 10 while(strcmp(temp,"right on") != 0){ 11 num[i] = a; 12 if(strcmp(temp,"too high") == 0) 13 ch[i] = '<'; 14 else 15 ch[i] = '>'; 16 i++; 17 scanf("%d\n", &a); 18 gets(temp); 19 } 20 n = i; 21 f = 1; 22 for(i = 0; i < n; i++){ 23 if(ch[i] == '>' && num[i] >= a) 24 f = 0; 25 if(ch[i] == '<' && num[i] <= a) 26 f = 0; 27 } 28 if(f == 0) 29 printf("Stan is dishonest\n"); 30 else 31 printf("Stan may be honest\n"); 32 } 33 return 0; 34 }