C编程-平均值

C编程-平均值,c,printf,scanf,integer-division,C,Printf,Scanf,Integer Division,好吧,我完全被困在这里,如果这件事对你们有任何影响,我向你们道歉,但我需要你们的帮助 我目前正在自学C语言,并从昨天开始慢慢地学习。所以我想我会给自己一个任务,让用户输入3个数字,程序必须找到这三个数字之间的平均数 这是我的密码: #include <stdio.h> int main() { int firstnum, secnum, thirnum, finalnum; printf("Enter the first number \n"); sca

好吧,我完全被困在这里,如果这件事对你们有任何影响,我向你们道歉,但我需要你们的帮助

我目前正在自学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;

}
#包括
int main(){
int firstnum、secnum、thirnum、finalnum;
printf(“输入第一个数字\n”);
scanf(“%f”、&firstnum);
printf(“输入第二个数字\n”);
scanf(“%s”、&secnum);
printf(“输入第三个数字\n”);
scanf(“%t”、&thirnum);
finalnum=(firstnum+secnum+thirnum)/3;
printf(“平均值为:“finalnum”);
返回终局;
}

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

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

例如

打印整数或浮点数

例如

避免整数除法:强制转换或所有浮动

例如

或者对所有类型使用浮动

double firstnum, secnum, thirnum, finalnum;
返回0表示主菜单中的成功

return 0;

我发现修复程序与和的评论相链接。谢谢你们两位

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

然后我试着用我的int>finalnum做一个浮动,但没有成功。所有这一切都是不断地将平均值返回为“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;

}
#包括
int main(){
int firstnum、secnum、thirnum;
国际金融;
printf(“输入第一个数字\n”);
scanf(“%d”、&firstnum);
printf(“输入第二个数字\n”);
scanf(“%d”和&secnum);
printf(“输入第三个数字\n”);
scanf(“%d”&thirnum);
finalnum=(firstnum+secnum+thirnum)/3;
printf(“平均值为:%d”,finalnum);
返回终局;
}

谢谢大家:)

使用float而不是int来获得十进制精度 否则最终结果会被取整

用于打印浮动 printf(“平均值为:%f”,finalnum)

有关printf的更多信息,请参考此链接

%d“
scanf
printf
an
int
的适当格式说明符。使用
printf(“平均值为:%d”,最终),但请注意您正在执行整数除法()。考虑浮点。所以我会把浮点和最后的Num放在一起吗?请看下面的答案。堆栈溢出不是交互式教程,也不是C编程书籍/研究的替代品。你必须学习书中第一章提到的基础知识。另外,当问这样一个问题时,要清楚地说明你遇到了什么问题,而不仅仅是扔掉一些代码并说“它不工作”。在这种情况下,您会遇到编译器错误,因此您应该将它们与问题一起发布。这不是一个舍入问题,而是整数除法的结果。这仍然不是您想要的。你还在这里做整数除法。要执行所需操作,请尝试以下操作:1)将所有
int
替换为
float
。2) 将所有
%d
替换为
%f
。3) 将
3
替换为
3.0
(虽然此部分不是严格必需的,但在技术上是正确的)。代码将按照您的预期运行。是的,由于某些原因,float现在可以工作了。经验教训-不进行整数除法时使用浮点。非常感谢。
double firstnum, secnum, thirnum, finalnum;
return 0;
#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;

}