列表

详情


HJ97. 记负均正

描述

首先输入要输入的整数个数n,然后输入n个整数。输出为n个整数中负数的个数,和所有正整数的平均值,结果保留一位小数。
0即不是正整数,也不是负数,不计入计算。如果没有正数,则平均值为0。

数据范围: ,输入的整数都满足

输入描述

首先输入一个正整数n,
然后输入n个整数。

输出描述

输出负数的个数,和所有正整数的平均值。

示例1

输入:

11 
1 2 3 4 5 6 7 8 9 0 -1

输出:

1 5.0

示例2

输入:

3
0 0 0

输出:

0 0.0

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C 解法, 执行用时: 1ms, 内存消耗: 256KB, 提交时间: 2020-07-06

#include <stdio.h>

int main()
{
    int n;
    while(scanf("%d",&n) != EOF)
    {
        int cnt1 = 0;
        int cnt2 = 0;
        int sum = 0;
        int num;
        double result;
        for(int i = 0;i < n;i++)
        {
            scanf("%d",&num);
            if(num < 0)
            {
                cnt1++;
            }
            else if(num > 0)
            {
                sum += num;
                cnt2++;
            }
        }
        result =(float) sum / cnt2;
        printf("%d %0.1lf\n",cnt1,result);
    }
    
    
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 272KB, 提交时间: 2020-12-27

#include <stdio.h>
int main(void)
{
	int i, num, tmp, N_cnt, P_cnt, sum;
	for( ; scanf("%d", &num)!=EOF; ){
		N_cnt=P_cnt=sum=0;
		for(i=0; i<num; i++){
			scanf("%d", &tmp);
			if(tmp<0) { N_cnt++; continue; }
			if(tmp>0) { sum+=tmp; P_cnt++; }
		}
		printf("%d %.1f\n", N_cnt, (float)sum/P_cnt);
	}
	return 0;
}

上一题