这个结果c运行出来一直是负几亿,这个x和y都可以出来,就这个c一直运行不了

这个结果c运行出来一直是负几亿,这个x和y都可以出来,就这个c一直运行不了

img

输入的时候要以逗号分割输入

#include<stdio.h>
#include <stdlib.h>
 
int main()
{
    int i,n,x,y,c;
    scanf("%d,%d",&x,&y);
    c+=(x++)*y;
    c=++c;
    printf("%d %d %d",x,y,c);
}
 

img

(1)scanf中%d和%d之间有逗号,你输入数据的时候也要输入逗号。
(2)y如果可以接收小数的话,y的类型需要改成double类型。当然,用%d也可以,但是%d只能读取到整数部分。
(3)c的值没有初始化,在计算的时候会出错。这是c出现负数的原因

代码修改及输入方式如下图所示:

img

代码修改如下:

#include <stdio.h>
void main()
{
    double c=0,x,y; //这里是double还是int根据你的需要来定,int无法接受小数
    
    scanf("%lf,%lf",&x,&y); //读取double类型用%lf,如果c,x,y的类型仍然用int的话,就把%lf改成%d
    c += (x++)*y;
    c=++c;
    printf("x=%.2f,y=%.2f,c=%.2f\n",x,y,c); //  %.2f表示输出小数点后2位,如果c,x,yint类型,把%.2f改成%d即可
}

如果你的输入内容是:x=2,y=2.5,代码修改如下:
输入及运行结果图:

img

代码:

#include <stdio.h>
void main()
{
    double c=0,x,y; //这里是double还是int根据你的需要来定,int无法接受小数
    
    scanf("x=%lf,y=%lf",&x,&y);  //读取double类型用%lf,如果c,x,y的类型仍然用int的话,就把%lf改成%d
    c += (x++)*y;
    c=++c;
    printf("x=%.2f,y=%.2f,c=%.2f\n",x,y,c); //如果c,x,yint类型,把%.2f改成%d即可
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632