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
好吧,我完全被困在这里了,如果这给你们带来了任何不便,我深表歉意,但我需要你们的帮助。
我目前正在自学 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