从键盘入15个整数到教组中求其中正数的个数及其平均值 并新出结果。(平均值精确到小致点后两位) 注意:0既不是正数又不是负数

从键盘入15个整数到教组中求其中正数的个数及其平均值
并新出结果。(平均值精确到小致点后两位)
注意:0既不是正数又不是负数

这里使用了两个变量 pos_count 和 pos_sum 来分别记录正数的个数以及总和。在遍历整个数组之后,我们就可以算出正数的平均值,并使用 cout.precision(2) 和 cout << fixed 来设置输出流输出小数点后两位的精度。

#include <iostream>
using namespace std;

int main() {
    int nums[15]; // 定义存储 15 个整数的数组
    int pos_count = 0; // 记录正数的个数
    double pos_sum = 0; // 记录正数的和,使用 double 类型以防溢出
    
    // 从键盘读入 15 个整数
    for(int i=0; i<15; i++) {
        cin >> nums[i];
    }

    // 遍历数组,统计正数的个数和和
    for(int i=0; i<15; i++) {
        if(nums[i]>0) {
            pos_count++;
            pos_sum += nums[i];
        }
    }
    
    // 计算平均值
    double pos_avg = (pos_count>0) ? (pos_sum/pos_count) : 0; // 注意分母不能为 0

    // 输出结果
    cout << "正数个数为:" << pos_count << endl;
    cout.precision(2); // 设置输出流的小数点后两位
    cout << "正数平均值为:" << fixed << pos_avg << endl; // 使用 fixed 保留小数位

    return 0;
}

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7785092
  • 这篇博客也不错, 你可以看下输入5个学生3门课的成绩,编写程序统计并输出每个平均分, 每门课程的平均分,找出所有15个分数中最高的分数所对应的学生和课程。要求分别用函数实现下列功能:1)输入所有学生的每门课成绩2)计算并
  • 除此之外, 这篇博客: 字母大小写转换中的 键盘输入一个大写或者小写字母系统自动转换为大写或者小写字母 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    int  main()
    
    {
    	
    	char x, y;
    	while (1)
    	{
    		printf(" 请输入一个字母,  输入 空格  结束程序:   ");
    		fflush(stdin);		//清空缓冲
    		x = _getch();		
    		fflush(stdin);		//清空缓冲
    
    		if (x >= 'a' && x <= 'z')
    		{
    			y = x - 32;
    			printf("输入的小写字母,转换后的的字符为:%c\n", y);
    		}
    		else if (x >= 'A' && x <= 'Z')
    		{
    			y = x + 32;
    			printf("输入的大写字母,转换后的的字符为:%c\n", y);
    		}
    		else if (x == ' ')
    		{
    			printf("再见\n");
    			return 0;
    		}
    		else
    		{
    			printf("输入错误\n");
    		}
    
    	}
    	return 0;
    }
    
  • 您还可以看一下 CSDN讲师老师的北大毕业 15 年经验架构师,为你解读万物互联时代的计算平台课程中的 北大毕业 15 年经验架构师,为你解读万物互联时代的计算平台-上小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    问题分析:

    本题要求计算15个整数中正数的个数和它们的平均值,需要注意的问题有:

    1. 如何输入这15个整数并保存?
    2. 如何处理正数个数和平均值?
    3. 注意算平均值时要避免除数为0的情况。

    解决方案:

    1. 输入15个整数并保存可以用数组来实现。先定义一个长度为15的整型数组,然后以循环的方式读入15个整数,并保存到数组中。
    2. 可以使用计数器变量来计算正数的个数,遍历整个数组,遇到正数则计数器加一。然后再遍历一次数组,计算数组元素值之和。除数是正数的个数,而注意要避免除数为0的情况,因此需要先进行判断。
    3. 计算平均值时,可以直接用前面计算的数组元素值之和除以正数的个数。

    代码实现:

    #include <stdio.h>
    #define N 15
    
    int main() {
        int nums[N], cnt = 0, sum = 0;
        for (int i = 0; i < N; i++) {
            scanf("%d", &nums[i]);
        }
        for (int i = 0; i < N; i++) {
            if (nums[i] > 0) {  // 计算正数个数
                cnt++;
            }
            if (nums[i] > 0) {  // 计算有效值之和,不包括负数和0
                sum += nums[i];
            }
        }
        double avg;
        if (cnt == 0) {  // 特判除数为0的情况
            avg = 0;
        } else {
            avg = (double)sum / cnt;  // 平均值
        }
        printf("正数个数为%d,平均值为%.2f", cnt, avg);
        return 0;
    }
    

    代码说明:

    1. 定义一个长度为15的数组nums,并以循环的方式读入15个整数并保存到数组中。
    2. 按照题目要求遍历数组并计算正数的个数、有效值之和。
    3. 注意要先进行判断再做除法,避免除数为0的情况。
    4. 输出正数的个数和平均值。

    示例输入:

    1 2 3 -4 -5 6 7 0 9 10 11 -12 -13 -14 15
    

    示例输出:

    正数个数为11,平均值为6.55
    

    完整代码及运行结果:

    运行结果


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^