题目如下,请找出代码错误,改了十多次了,救命qwq

题目如下,请找出代码错误,改了十多次了,救命qwq

问题描述:

img


#include <stdio.h>

int main()
{
int K;
scanf("%d",&K);
while(K--)
{
int y,a,b,c;
float x;
scanf("%d %d %d",&a,&b,&c);
if(c==1){
if(a==b!=0){
printf("0\n");
goto end;
}
if(a==b==0){
printf("1\n");
goto end;
}
if(a!=b){
printf("None\n");
goto end;
}
}else if(c==0){
if(a==0&&b!=0){
printf("0\n");
goto end;
}else{
printf("None\n");
goto end;
}
}
else{
x=(b*c-a)/(1.0-c);
y=(int)x;
if(x<0||x-y>0){
printf("None\n");
goto end;
}
printf("%d\n",y);
}
end:;
}
return 0;
}

Description
题目描述
求方程(x+a)/(x+b)=c的非负整数根,其中a.bc都是非负整数
输入
第一行是一个整数K,表示样例的个数(K≤30000)。以后的K行每行为以一个样例,包含三个非负整数a.b.c(a,b,c≤10°。
输出
每行输出一个样例的结果。如果方程没有根,输出None”,否则输出根的值,如果存在多个根,输出最小的那个。
SampleInput
Sample Output
None
Source

修改如下,供参考:

#include <stdio.h>
int main()
{
    int K;
    scanf("%d", &K);
    while (K--)
    {
        int y, a, b, c;
        float x;
        scanf("%d %d %d", &a, &b, &c);
        if (c == 1) {
            if (a != 0 && b != 0 && a == b) {
                printf("0\n");
                //goto end;
            }
            if (a == 0 && b == 0) {
                printf("1\n");
                //goto end;
            }
            if (a != b) {
                printf("None\n");
                //goto end;
            }
        }
        else if (c == 0) {
            if (a == 0 && b != 0) {
                printf("0\n");
                //goto end;
            }
            else {
                printf("None\n");
                //goto end;
            }
        }
        else {
            x = (b * c - a) / (1.0 - c);
            y = (int)x;
            if (x < 0 || x - y>0) {
                printf("None\n");
                //goto end;
            }else
                printf("%d\n", y);
        }
    //end:;
    }
    return 0;
}

img


这里应该把==0去掉吧

if(a==b==0)
这里不对,不可以3个变量作比较,只能2个比较
=-=-=-=-=
c语言里的比较本质上是一种运算,听名字也知道:比较运算符,运算就会有运算结果
a==b这个运算中,如果相等,结果是1,如果不等,结果是0
那么a==b==0这个式子,会先计算a==b,再把结果与0作比较,最终得出结果
如果你需要的是a与b都是0,那么需要这样写:a==0 && b==0

a==b!=0这么写是不对的
应该是a==b && a!=0 && b!=0
下面的一样,也需要修改