用C语言编写二元一次方程

如何编写程序,使得当我输入10x+4y=100(整组同时输入,即只输入一次回车),能给变量赋予系数的值?

1、当系数为1的情况呢?例:3x+y=10(我使用scanf()语句无法解决,现在的思路是用getchar()赋值给数组,但无法区分系数的位数以及系数属于哪个未知数)

2、当方程中有减号时,如何与数字一起赋给变量?例:x-y=10

3个回答

字符串输入,x之前为x的系数,需要吧字符串转为数字,若没有为1
判断是否有‘’-‘’出现,若有标记一下(flog=1)
y之前‘’-/+‘’之后为y的系数
‘’=‘’后为值
好久没写题了,仅供参考

没看懂要干什么,你是要输入一个方程然后获取方程里面的系数吗

#include <iostream>
using namespace std;
int main()
{
        int x_divisor = 0, y_divisor = 0, divisor_buf = 0, t=1;
        char c = cin.peek();
        while (t)
        {
            if(isdigit(c))
            {
                divisor_buf = divisor_buf * 10 +c- '0';
                cin.get();
                c = cin.peek();
            }
            else
            {
                switch (c)
                {
                    case 'x':
                        x_divisor = divisor_buf;
                        divisor_buf = 0;
                        cin.get();
                        c = cin.peek();
                        break;
                    case 'y':
                        y_divisor = divisor_buf;
                        divisor_buf = 0;
                        cin.get();
                        c = cin.peek();
                        break;
                    case '\n':
                        t = 0;
                        cin.get();
                    break;
                    default:
                        cin.get();
                        c = cin.peek();
                    break;
                }
            }
        }
        cout << x_divisor <<"x    " << y_divisor << "y     " << endl;

}

}图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问