ccf-csp 201903-2求题解,求指正代码错误之处!
  • 板块题目总版
  • 楼主Ben_Yeung
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/11/15 00:07
  • 上次更新2023/11/4 00:31:34
查看原帖
ccf-csp 201903-2求题解,求指正代码错误之处!
580757
Ben_Yeung楼主2021/11/15 00:07

ccf-csp 201903-2求题解。 题目链接

求指正一下我的代码思路,我自己觉得逻辑应该是正确的,但运行程序时候代码输入两行数据就再输不进去了,回车键运行也没有输出什么结果,这题的优解我已经弄明白,只是想知道我自己的代码错误在哪,感谢各位的热心!

#include<cstdio>
#include<iostream>

using namespace std;

int main()
{
	int n;
	cin>>n;
	getchar();
    char str[100][7];
	for(int i=0;i<n;i++){
		for(int a=0;b<7;b++){
			scanf("%c",&str[i][a]);
		if(a%2==0){
			str[i][a]=str[i][a]-'0';
		 }//将字符型数字转换为实际数字 
	    }
	    //先处理有x和/的算式 
		for(int j=1;j<=5;j+2){
			if(str[i][j]=='x'){
				str[i][j+1]=str[i][j-1]*str[i][j+1];//将运算结果赋给*号的后一位数 
				str[i][j-1]=0;//前一位数字归零 
			}else if(str[i][j]=='/'){
				str[i][j+1]=str[i][j-1]/str[i][j+1];//将运算结果赋给/号的后一位数 
				str[i][j-1]=0;//前一位数字归零 
			}
		}
		//再处理+和-的算式 
		for(int k=1;k<=5;k+2){
			if(str[i][k]=='+'){
				str[i][k+1]=str[i][k-1]+str[i][k+1]; //将运算结果赋给+号的后一位数 
				str[i][k-1]=0; //前一位数字归零 
			}else if(str[i][k]=='-'){
				str[i][k+1]=str[i][k-1]-str[i][k+1];//将运算结果赋给-号的后一位数 
				str[i][k-1]=0;//前一位数字归零 
			}
		}
		
		//此时将所有数字相加判断和是否为24 
		if(str[i][0]+str[i][2]+str[i][4]+str[i][6]==24){
			cout<<"Yes"<<endl;
		}else{
			cout<<"No"<<endl;
		}
		
	}
 } 
     
2021/11/15 00:07
加载中...