【问题标题】:How I can correct my c code?如何更正我的 c 代码?
【发布时间】:2014-11-02 07:55:22
【问题描述】:

我无法获得所需的输出。输出应该是:

error =1
correction=0.1  

如何修复我的代码以获得上面的输出。

    int weight[3] = { 1, 0, 0 };
    int x[3] = { 1, 0, 0 };

    output = 1;

    float error, d;
    int sum = 0, i, n;

    for (i = 0; i < 3; i++)
    {
        sum = sum + x[i] * weight[i];
    }



    error = output - n;
    d = error * RATE;

    printf("error= %i", error);
    printf("correction= %i", d);
}

【问题讨论】:

  • 付给某人 50 美元。
  • printf("error= %f", error);
  • (一个好的问题应该能够在标题中进行总结;这通常仅仅是解释行为和/或描述的结果问题,希望与最小测试用例有关。)
  • 您将 d 的值打印为整数,格式为 %i,但 d 是浮点变量。 "printf("correction= %f",d); " 可能会给你想要的输出。
  • sum 变为 1。n 变为 1。error 变为 0。d 变为 0。

标签: c variables types


【解决方案1】:

对于您的计算,您的程序给出的答案是非常正确的。所以检查给定的值。

对于你的价值观,答案是

error = output - n;//0 = 1 - 1
d = error * RATE;// 0 = 0 * 0.1

【讨论】:

    【解决方案2】:

    这在我的环境中完美运行!

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int error = 1;
        float correction = 0.1;
    
        printf("error =%d\n", error);
        printf("correction=%0.1f\n", correction);
    }
    

    【讨论】:

    • 或者更好,#include int main() { printf("error =1\ncorrection =0.1\n");哦,是的,你的代码中有一个错误。 = 和数字之间没有空格。 +1 为简单起见。
    • @thang,我更喜欢你的方法;)如果你发布它,这将是公认的答案:D,谢谢你向我展示错误,更新;)
    猜你喜欢
    • 2020-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    相关资源
    最近更新 更多