c - 我的输出答案有什么问题?

标签 c helper

大家好,这是我的第一个问题,希望能得到一些帮助。 尽管计算正确,但基本上输出是错误的!! 每当我将超过 7 个变量添加到“总计”时,输出就会损坏 输出的 7 个及更少的变量给出了正确答案??!! 这是我的代码我需要你的帮助 Guyz

#include <stdio.h>

void main()
{
    float total = 0, necklace, scarf, cotton, Lace, Hijab, h, m, l, z;
    int ch, q;
    printf("\nFashion : \n1.Fashion Necklace <Price=RM29>\n2.Scarf <Price=RM25>\n3.Cotton T-shirts <Price=RM35>\n4.Lace Blazer <price=RM33>\n5.Set of 2 Hijab <price=RM35>\n6.Fleece-Lined Hoodie <price=RM49>");
    printf("\nEnter Your Choice : ");
    scanf("%d", &ch);
    if (ch < 10)
    {
        printf("\nEnter Quantity : ");
        scanf("%d", &q);
        if (ch == 1)
        {
            necklace = 29 * q;
        }
        else if(ch == 2)
        {
            scarf = q * 25;
        }
        else if(ch == 3)
        {
            cotton = 35 * q;
        }
        else if(ch == 4)
        {
            Lace = 33 * q;
        }
        else if(ch == 5)
        {
            Hijab = 35 * q;
        }
        else if(ch == 6)
        {
            h = 49 * q;
        }
        else if(ch == 7)
        {
            m = 20 * q;
        }
        else if(ch == 8)
        {
            l = 40 * q;
        }
        else if(ch == 9)
        {
            z = 15 * q;
        }
    }
    else
    {
        printf("\nInvalid Choice!!!");
    }
    total = (scarf + necklace + cotton + Lace + Hijab + h + m + l + z);
    printf("\nTotal = RM%.2f", total);
}

最佳答案

问题是您没有初始化所有这些变量,这意味着它们的值将不确定并且您将有未定义的行为

如果您将所有这些变量初始化为零,它应该可以工作。

你得到错误值的原因是因为上面的原因,并且你在程序中只设置了一个变量,将它添加到所有未初始化的变量中。所以在实践中发生的事情是您将许多看似随机的值添加到单个计算值并将其打印为输出。

关于c - 我的输出答案有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36312766/

相关文章:

Django Crispy Forms - 布局 Div

ruby-on-rails - 辅助规范上的 output_buffer 为空

html - 用于外部链接的 Cakephp 2.x HTML 帮助程序不起作用

delphi - 如何从辅助类函数中获取 "helped"类?

c - 使用_snwprintf时意外获取中文字符

c - 测试 - 运行时错误 SIGSEGV

c - 用户输入中断 while 循环以返回主程序

输入选择表单上的 CakePHP 标签选项未按预期工作

c++ - 无法使用 fopen() 在 Windows 7 的 C 盘中创建文件

带有 stdin、stdout、stderr 和错误消息的 C 加密程序