你的图上没有scanf,你的图是不是少了
按照你的老师的思路,程序如下:
#include <stdio.h>
int main() {
int sum = 0, count = 0;
int number;
scanf("%d", &number);
while (number != -1)
{
sum += number;
count++;
scanf("%d", &number);
}
printf("%.2lf", (double)sum / count);
return 0;
}
用到2个scanf的原因是,循环里的那个,只能影响下一次循环的判断,所以循环前还要一个。
其实也可只用一个:
#include <stdio.h>
int main() {
int sum = 0, count = 0;
int number;
while (1)
{
scanf("%d", &number);
if (number == -1) break;
sum += number;
count++;
}
printf("%.2lf", (double)sum / count);
return 0;
}
没看到算法。scanf是表示从键盘输入,根据算法描述是输入number
scanf用法可以参考这个:https://blog.csdn.net/weixin_44720323/article/details/102011722
循环读入并判断,供参考:
#include <stdio.h>
int main()
{
int number, sum = 0, count = 0;
while (scanf("%d", &number) == 1 && number != -1){
sum += number;
count++;
}
printf("%f",(float)sum / count);
return 0;
}
【以下回答由 GPT 生成】
算平均数的算法是一个简单的计算两个整数的和以及平均值的算法。该算法的具体理解如下:
首先,定义了四个变量:num1, num2, sum, average。其中,num1和num2用来接收输入的两个整数,sum用来保存这两个整数的和,average用来保存平均值。
然后,使用printf函数输出提示信息,让用户输入两个整数。
使用scanf函数,通过传入%d %d格式控制字符串,从标准输入中读取两个整数,并将这两个整数存储到num1和num2中。%d表示接收一个整数,空格和换行符用于提供间隔。
接下来,通过sum = num1 + num2计算这两个整数的和,将结果存储到sum变量中。
使用(float) sum / 2将sum强制转换为浮点数,然后除以2得到平均值。因为两个整数相加的结果是整数,所以需要将其中一个数转换为浮点数,以避免数据类型之间的不匹配导致的错误。
最后,使用printf函数将sum和average的值输出到屏幕上。
两个scanf语句的作用是从用户输入中获取数据,并将其存储到相应的变量中。第一个scanf语句使用%d %d格式控制字符串,从标准输入中读取两个整数,并将它们分别存储到num1和num2中。第二个scanf语句没有显示的格式控制字符串,是因为printf函数输出的提示信息已经指明了输入格式,所以scanf可以根据提示信息从输入中读取数据。
【相关推荐】