C编程-平均值
好吧,我完全被困在这里,如果这件事对你们有任何影响,我向你们道歉,但我需要你们的帮助 我目前正在自学C语言,并从昨天开始慢慢地学习。所以我想我会给自己一个任务,让用户输入3个数字,程序必须找到这三个数字之间的平均数 这是我的密码: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
#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
anint
的适当格式说明符。使用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;
}