c语言,标准输出中的额外消息?

c语言,标准输出中的额外消息?,c,stdout,C,Stdout,出于一些非常奇怪的原因,我的c程序在标准输出中打印了一条额外的消息,我不知道这是为什么。 假设现在我为stdin插入了0,0,30,那么stdout中的消息应该是“auga”,但是如果你编译了下面的代码,我打赌你会惊讶地看到一条额外的消息出现,我感到震惊,我和我的同事也没有发现这是为什么 代码如下 #include <stdio.h> #include <math.h> int main() { system("chcp 1253"); double a,

出于一些非常奇怪的原因,我的c程序在标准输出中打印了一条额外的消息,我不知道这是为什么。 假设现在我为stdin插入了0,0,30,那么stdout中的消息应该是“auga”,但是如果你编译了下面的代码,我打赌你会惊讶地看到一条额外的消息出现,我感到震惊,我和我的同事也没有发现这是为什么

代码如下

#include <stdio.h>
#include <math.h>
int main()
{
    system("chcp 1253");
    double a,b,g,temp,root1,root2;
    printf("Εισάγετε παρακαλω τιμες σταθερων α,β,γ για την εξίσωση αx^2+βx+γ=0 :\n");
    printf("Εισάγετε το α : ");
    scanf("%lf",&a);
    printf("Εισάγετε το β : ");
    scanf("%lf",&b);
    printf("Εισάγετε το γ : ");
    scanf("%lf",&g);
    if(a==0)
    {
        if((b==0)&&(g!=0))printf("auga\n");
        if((b==0)&&(g==0))
        {
            printf("Η συναρτηση είναι ταυτοτήτα καθώς α=0,β=0,γ=0 αρα αχ^2+βχ+γ=0 αφου 0+0+0=0");
        }
        else
        {
            temp=(float)g*-1;
            temp=(float)temp/b;
            printf("Η ριζα για την συναρτηση με α=0 ειναι : %.2lf ",temp);
        }
    }
    else
    {
        temp=(b*b)-4*a*g;
        if(temp>0)
        {   
        root1=((-b)+sqrt(temp))/(2*a);
        root2=((-b)-sqrt(temp))/(2*a);
        printf("οι ριζες που ισχυουν για αυτην την εξισωση ειναι οι αριθμοι : %.2lf,%.2lf ",root1,root2);
        }
        else if(temp==0)
        {
            root1=(-b)/(2*a);
            printf("Η ριζα που ισχυει για αυτην την εξισωση ειναι η : %.2lf  ",root1);
        }
        else
        {
            printf("Η Σύναρτηση ειναι αδύνατη καθώς η διακρίνουσα ειναι μικρότερη του 0");
        }
    }
    return 0;

}
#包括
#包括
int main()
{
系统(“chcp 1253”);
双a,b,g,温度,根1,根2;
printf(“Εισάγετεπαρακαλωτιμεσταθερνα,β,γγγιατηεξσωηαx^2+βx+γ=0:\n”);
printf(“Εισάγετετα:”);
scanf(“%lf”、&a);
printf(“Εισάγετετβ”);
scanf(“%lf”、&b);
printf(“Εισάγετετγ:”);
扫描频率(“%lf”、&g);
如果(a==0)
{
如果((b==0)和(&(g!=0))printf(“auga\n”);
如果((b==0)和&(g==0))
{
printf(“ΗσνναρτησηεναιταΓτττττακαθώα=0,β=0,γ=0αραχ^2+βχ+γ=0αφοΓ0+0=0”);
}
其他的
{
温度=(浮动)g*-1;
温度=(浮动)温度/b;
printf(“Ηριζαγιατηνσναρτησημεα=0εναι:%.2lf”,温度);
}
}
其他的
{
温度=(b*b)-4*a*g;
如果(温度>0)
{   
root1=(-b)+sqrt(temp))/(2*a);
root2=(-b)-sqrt(temp))/(2*a);
printf(“οιριζεποισχοⅤγιααγγγγγγγγγττηεξισωσηεειⅤαρθμοι:%.2lf”,根1,根2);
}
否则如果(温度==0)
{
根1=(-b)/(2*a);
printf(“ΗριζαποισχⅤειγιααΓτηηντηεξισηεναιη:%.2lf”,根1);
}
其他的
{
printf(“Η∑ύναρτησηειναιαδύνατηκαθθώηΔκρρίνσαεεικρτρητ0”);
}
}
返回0;
}

我发现了实际的问题,结果发现我的导师在一个方面错了,你看,他告诉我们,我的“else if”行在c中不存在,它算作额外的if,所以作为一个好学生,我听从了他的建议,唉,我发现问题在于实际的第二个if,修复后的代码如下,现在可以正常工作。 谢谢大家抽出时间来,很抱歉打扰你们

#include <stdio.h>
#include <math.h>
int main()
{
    system("chcp 1253");
    double a,b,g,temp,root1,root2;
    printf("Εισάγετε παρακαλω τιμες σταθερων α,β,γ για την εξίσωση αx^2+βx+γ=0 :\n");
    printf("Εισάγετε το α : ");
    scanf("%lf",&a);
    printf("Εισάγετε το β : ");
    scanf("%lf",&b);
    printf("Εισάγετε το γ : ");
    scanf("%lf",&g);
    if(a==0)
    {
        if((b==0)&&(g!=0))printf("auga\n");
        else if((b==0)&&(g==0))
        {
            printf("Η συναρτηση είναι ταυτοτήτα καθώς α=0,β=0,γ=0 αρα αχ^2+βχ+γ=0 αφου 0+0+0=0");
        }
        else
        {
            temp=(float)g*-1;
            temp=(float)temp/b;
            printf("Η ριζα για την συναρτηση με α=0 ειναι : %.2lf ",temp);
        }
    }
    else
    {
        temp=(b*b)-4*a*g;
        if(temp>0)
        {   
        root1=((-b)+sqrt(temp))/(2*a);
        root2=((-b)-sqrt(temp))/(2*a);
        printf("οι ριζες που ισχυουν για αυτην την εξισωση ειναι οι αριθμοι : %.2lf,%.2lf ",root1,root2);
        }
        else if(temp==0)
        {
            root1=(-b)/(2*a);
            printf("Η ριζα που ισχυει για αυτην την εξισωση ειναι η : %.2lf  ",root1);
        }
        else
        {
            printf("Η Σύναρτηση ειναι αδύνατη καθώς η διακρίνουσα ειναι μικρότερη του 0");
        }
    }
    return 0;

}
#包括
#包括
int main()
{
系统(“chcp 1253”);
双a,b,g,温度,根1,根2;
printf(“Εισάγετεπαρακαλωτιμεσταθερνα,β,γγγιατηεξσωηαx^2+βx+γ=0:\n”);
printf(“Εισάγετετα:”);
scanf(“%lf”、&a);
printf(“Εισάγετετβ”);
scanf(“%lf”、&b);
printf(“Εισάγετετγ:”);
扫描频率(“%lf”、&g);
如果(a==0)
{
如果((b==0)和(&(g!=0))printf(“auga\n”);
else如果((b==0)和&(g==0))
{
printf(“ΗσνναρτησηεναιταΓτττττακαθώα=0,β=0,γ=0αραχ^2+βχ+γ=0αφοΓ0+0=0”);
}
其他的
{
温度=(浮动)g*-1;
温度=(浮动)温度/b;
printf(“Ηριζαγιατηνσναρτησημεα=0εναι:%.2lf”,温度);
}
}
其他的
{
温度=(b*b)-4*a*g;
如果(温度>0)
{   
root1=(-b)+sqrt(temp))/(2*a);
root2=(-b)-sqrt(temp))/(2*a);
printf(“οιριζεποισχοⅤγιααγγγγγγγγγττηεξισωσηεειⅤαρθμοι:%.2lf”,根1,根2);
}
否则如果(温度==0)
{
根1=(-b)/(2*a);
printf(“ΗριζαποισχⅤειγιααΓτηηντηεξισηεναιη:%.2lf”,根1);
}
其他的
{
printf(“Η∑ύναρτησηειναιαδύνατηκαθθώηΔκρρίνσαεεικρτρητ0”);
}
}
返回0;
}

不清楚您在问什么。我看不懂你的留言。产出是什么,预期是什么?尝试使用调试器,你会感到惊讶。我知道你无法读取我的字符串,但问题是我收到了if和else两条消息,在我发布的消息中我发现了问题,调试器没有显示任何内容,我尝试了一下。谢谢你的时间,我假设你得到了auga这个词,然后“printf(“Ηριζαγιατηνσνναρτησημεα=0εηναι:%.2lf”,temp);”b和g都不是零,所以取其他值,则code>应为
否则。投票结束是一个打字错误。