没有什么难的 主要是几个注意点
//P1597 语句解析
//2016.11.22
#include <cstdio>
using namespace std;
char c1, c2;
int s[3]; //关于初始化 在主程序外与在主程序内的区别
int main(){
while (scanf("%c:=%c;", &c1, &c2) == 2) //关于scanf读入时的返回值
s[c1 - 'a'] = c2 >= '0' && c2 <= '9' ? c2 - '0' : s[c2 - 'a']; //关于三目运算符的优先级
for (int i = 0; i < 3; i++) printf("%d ", s[i]);
return 0;
}
注:
关于scanf读入时的返回值
scanf()函数有返回值且为int型。
scanf()函数返回的值为:正确按指定格式输入变量的个数;也即能正确接收到值的变量个数。
如
scanf(“%d%d”, &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。
关于三目运算符的优先级 什么的
多看看就明白了
关于初始化 在主程序外与在主程序内的区别
似乎
在主程序外定义 有初始化的零
在主程序内的 没有