救命!!!!!!!!!全红了!!!!!

P1957 口算练习题

Star_Sky_ @ 2023-11-29 13:52:50

救救孩子吧……

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

struct simple
{
    int a , b;
    char tmp;
};

int main()
{
    char tool[100] , ou[100];
    int n , t;
    scanf("%d" , &n);
    simple list[n];

    cin.get();

    for (int i = 0 ; i < n ; i++)
    {
        fgets(tool , sizeof(tool) , stdin);
        if (tool[0] > '9')
        {
            sscanf(tool , "%c%d%d" , &list[i].tmp , &list[i].a , &list[i].b);
        }
        else
        {
            list[i].tmp = list[i-1].tmp;
            sscanf(tool , "%d%d" , &list[i].a , &list[i].b);
        }

        if (list[i].tmp == 'a' || list[i].tmp == '+')
        {
            list[i].tmp = '+';
            t = list[i].a + list[i].b;
        }
        else if (list[i].tmp == 'b' || list[i].tmp == '-')
        {
            list[i].tmp = '-';
            t = list[i].a - list[i].b;
        }
        else
        {
            list[i].tmp = '*';
            t = list[i].a * list[i].b;
        }

        sprintf(ou , "%d%c%d=%d" , list[i].a , list[i].tmp , list[i].b , t);
        printf("%s\n%d\n" , ou , strlen(ou));
    }

    return 0;
}

好人抽卡不歪!!!


by n0body_ @ 2023-11-29 14:32:33

输入的时候判断一下第一位是不是字符(abcd),如果是就再cin两个数字执行相应操作,不是就cin一个数字执行上一个操作,每次输入字符是拿一个char存就行了,方便之后操作


by Star_Sky_ @ 2023-11-29 20:21:55

@n0nody 谢谢


|