C 编程 - 平均

C Programming - Average

好吧,我完全被困在这里了,如果这给你们带来了任何不便,我深表歉意,但我需要你们的帮助。

我目前正在自学 C 并慢慢达到目标,从昨天开始。所以我想我会给自己一个任务,让用户输入 3 个数字,程序必须找到这三个数字之间的平均数。

这是我的代码:

#include <stdio.h>

int main() {

    int firstnum, secnum, thirnum, finalnum;

    printf("Enter the first number \n");
    scanf("%f",&firstnum);

    printf("Enter the second number \n");
    scanf("%s",&secnum);

    printf("Enter the third number \n");
    scanf("%t",&thirnum);

    finalnum = (firstnum +secnum+thirnum)/3;
    printf("The average value is: " finalnum);

return finalnum;

}

读取整数或浮点数:正确的格式说明符

对于整数,您需要 %d,对于双精度数,您需要 %lf。阅读更多有关其他地方的信息。

例如

scanf("%d",&firstnum);

打印整数或浮点数

例如

printf("The average value is: %d", finalnum);

避免整数除法:强制转换或全部浮点数

http://mathworld.wolfram.com/IntegerDivision.html

例如

double finalnum = (firstnum +secnum+thirnum)/3.0;

或者对所有类型使用浮点数。

double firstnum, secnum, thirnum, finalnum;

Return 0 表示在 main

中成功
return 0;

我发现修复与 harre and Klas Lindbäck 的评论相关联。谢谢你俩。

我按照建议将格式说明符更改为 %d。然后,我稍微更改了 printf 行。

然后我尝试用我的 int > finalnum 做一个浮点数,但它没有用。所有这些所做的就是连续 return 平均值为“0”,所以我将 finalnum 放回作为 int。这是代码现在的样子:

#include <stdio.h>

int main() {

    int firstnum, secnum, thirnum;
    int finalnum;

    printf("Enter the first number \n");
    scanf("%d",&firstnum);

    printf("Enter the second number \n");
    scanf("%d",&secnum);

    printf("Enter the third number \n");
    scanf("%d",&thirnum);

    finalnum = (firstnum + secnum + thirnum)/3;
    printf("The average value is: %d", finalnum);

return finalnum;

}

谢谢大家:)

使用浮点数而不是整数来获得小数精度 否则 finalnum 将四舍五入

用它来打印浮点数 printf("The average value is: %f",finalnum);

有关 printf 的更多信息,您可以参考此 link http://www.tutorialspoint.com/c_standard_library/c_function_printf.htm