fpy游戏人生 题解分享 · 2024/4/10
REPEAT 程序(结果填空) - 题解
本题作为蒟蒻的我属实想不通这题怎么写,只能看看csdn上面一些现成的抄下来,如有大佬,还请教教我怎么更好的理解此题 include using namespace std; int main(){ ``` //打开并读取文件 FILE \*fp = NULL; //存放文件地址,替换成自己电脑上的用户名即可,博主是Mac,所以是 这样的地址,windows需要加上分区 char src[]="/Users/xxxxxxx/Desktop/prog.txt"; //得到文件指针 fp = fopen(src, "r"); int fact[10]; //fact:每层存储的倍数,最高十层 char buff[255]; //buff:存储每行的临时变量 int now = 0; //now:表示当前循环层级 int sum = 0; //sum:统计最终结果 //初始化 sum,跳过 fgets(buff, 255, fp); //循环读取文件每一行 while(fgets(buff, 255, fp)) { int p=0; //读取空格数得到循环层数 while(buff[p]==' ') p++; //4个空格为一层循环 now = p/4; //该行格式:REPEAT \*: //确定第now层的倍数 if(buff[p]=='R') fact[now] = (buff[p+7]-'0'); //该行格式:A = A + x //计算该行带来的最终结果 if(buff[p]=='A') { //times存储累计倍数,默认为1 int times=1, x=buff[p+8]-'0'; //累计倍数 for(int i=0; i<now; i++) times = times\*fact[i]; //和 sum = sum+times\*x; } } cout<<sum; return 0; ``` }
查看全文
0 0 1 2