求助
  • 板块学术版
  • 楼主Codersky
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/20 08:26
  • 上次更新2024/1/20 11:19:30
查看原帖
求助
1239281
Codersky楼主2024/1/20 08:26

来个大佬给看一看吧,题目是p1957,洛谷在线ide测试感觉没什么问题,但是提交就是一个测试点都过不了 代码如下:

#include<iostream>
#include<string>
using namespace std;

int main()
{
    int n;
    cin >> n;
    getchar();
    string s[n];
    int i, j;
    for (i = 0; i < n; i++) {
        getline(cin, s[i]);
        int len = s[i].length();
        char ch;
        if (s[i][0] >= 'a' && s[i][0] <= 'c') {//前面有字母的情况
            ch = s[i][0];
            int a[2] = { 0 }, k = 0;
            for (j = 2; j < len; j++) {//这个循环就是把两个数字分解到数组中
                if (s[i][j] != ' ') a[k] += s[i][j] - '0';
                else {
                    k++;
                    continue;
                }
                if (j+1 < len && s[i][j+1] != ' ') a[k] *= 10;
            }
            if (ch == 'a') {
                string str = to_string(a[0]) + "+" + to_string(a[1]) + "=" + to_string(a[0]+a[1]);
                cout << str << "\n" << str.length();
            }
            else if (ch == 'b') {
                string str = to_string(a[0]) + "-" + to_string(a[1]) + "=" + (to_string(a[0]-a[1]));
                cout << str << "\n" << str.length();
            }
            else {
                string str = to_string(a[0]) + "*" + to_string(a[1]) + "=" + (to_string(a[0]*a[1]));
                cout << str << "\n" << str.length();
            }
        }
        else {//前面没字母的情况
            int a[2] = { 0 }, k = 0;
            for (j = 0; j < len; j++) {
                if (s[i][j] != ' ') a[k] += s[i][j] - '0';
                else {
                    k++;
                    continue;
                }
                if (j+1 < len && s[i][j+1] != ' ') a[k] *= 10;
            }
            if (ch == 'a') {
                string str = to_string(a[0]) + "+" + to_string(a[1]) + "=" + to_string(a[0] + a[1]);
                cout << str << "\n" << str.length();
            }
            else if (ch == 'b') {
                string str = to_string(a[0]) + "-" + to_string(a[1]) + "=" + (to_string(a[0] - a[1]));
                cout << str << "\n" << str.length();
            }
            else {
                string str = to_string(a[0]) + "*" + to_string(a[1]) + "=" + (to_string(a[0] * a[1]));
                cout << str << "\n" << str.length();
            }
        }
        if (i != n-1) cout << "\n";
    }

    return 0;
}
2024/1/20 08:26
加载中...