首页 > 试题广场 >

记负均正

[编程题]记负均正
  • 热度指数:275380 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
首先输入要输入的整数个数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
#include <stdio.h>

int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        int num, count1 = 0, count2 = 0;
        double sum = 0;
        while (n--) {
            scanf("%d", &num);
            if (num < 0) {
                count1++;
            }
            if (num > 0) {
                sum += num;
                count2++;
            }
        }
        printf("%d %.1f\n", count1, sum == 0 ? 0 : sum / count2);
    }
    return 0;
}

发表于 2024-09-13 00:26:56 回复(0)
#include <stdio.h>

int main() {
    int n,i;
    int result=0;
    int countzheng=0;
    int fushu=0;
    int num;
    scanf("%d", &n);
    for(i=0;i<n;i++){
        scanf("%d", &num);
        if(num<0){
            fushu++;
        }else if(num>0){
            countzheng++;
            result+=num;
        }
    }
    if(countzheng==0){
        printf("%d %.1f", fushu, 0.0);
    }else{
        printf("%d %.1f", fushu, (double)result/countzheng);
    }
    return 0;
}

发表于 2024-08-20 15:31:36 回复(0)
#include <stdio.h>

int main() {
    int inputCnt;
    int sum = 0;
    int zCnt = 0;
    int oCnt = 0;

    scanf("%d", &inputCnt);
    while(inputCnt--){
        int temp;
        scanf("%d", &temp);
        if(0 == temp){
            continue;
        }
        if(temp < 0){
            oCnt++;
        }else{
            zCnt++;
            sum += temp;
        }
    }
    printf("%d ", oCnt);
    if(0 == zCnt){
        zCnt = 1;
    }
    printf("%.1f\n",(float)sum/zCnt);
    return 0;
}

编辑于 2024-03-29 20:56:46 回复(0)
#include <stdio.h>
int main()
{
    int n = 0;
    while (scanf("%d", &n) != EOF)
    {
            int flage = 0;
            int ret = 0;
            int sum = 0;
        int arr[2000] = { 0 };
        for (int i = 0; i < n; i++)
        {
            scanf("%d", &arr[i]);
        }
        for (int i = 0; i < n; i++)
        {
            if (arr[i] < 0)
            {
                flage++;
            }
            if (arr[i] > 0)
            {
                ret++;
                sum += arr[i];
            }
        }
        printf("%d ", flage);
        if (ret == 0)
        {
            printf("0.0\n");
        }
        else
        {
            printf ("%.1f\n", (float)sum / (float)ret);
        }
    }
        return 0;
}

编辑于 2024-01-20 17:49:35 回复(0)
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
    int n = 0;
    scanf("%d", &n);
    int arr[1000] = { 0 };
    int count = 0;
    int a = 0;
    int b = 0;
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
        if (arr[i] < 0)
        {
            count++;
        }
        if (arr[i] == 0)
        {
            b++;
        }
        if (arr[i] > 0)
        {
            a += arr[i];
        }
    }
    if (b == n)
    {
        printf("0 0.0");
    }
    else
    {
        printf("%d %.1f", count, a * 1.0 / (n - count - b));
    }
    return 0;
}
发表于 2024-01-09 11:07:57 回复(1)
#include <stdio.h>

int main() {
    int n=0;
    while (scanf("%d", &n) != EOF) {
        int ret = 0;
        int flag = 0;
        float aver = 0;
        int digit = 0;
        while(scanf("%d",&digit) != EOF)
        {
            if(digit<0)
            {
                ret++;
            }
            if(digit >0)
            {
                flag++;
                aver += digit;
            }
        }
        printf("%d ",ret);
        if(flag == 0)
        {
            printf("0.0\n");
        }
        else {
            printf("%.1f\n",aver/flag);
        }
    }
    return 0;
}
发表于 2023-10-11 12:44:37 回复(0)
#include<stdio.h>

int main() {
    int n = 0;
    int i = 0;
    int count = 0;
    int add = 0;
    double sum = 0;
    double AVG = 0;
    scanf("%d", &n);
    int arr[2000] = { 0 };
    for (i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    for (i = 0; i <= n; i++) {
        if (arr[i] < 0)
            count += 1;
            else if(arr[i]==0);
        else {
            add++;
            sum += arr[i];
            AVG = sum / add;
        }
    }
    printf("%d %.1lf", count, AVG);
    return 0;
}

发表于 2023-08-29 11:01:08 回复(0)
#include <stdio.h>

int main() {
    int n = 0;
    scanf("%d", &n);

    int data[2001] = {0};
    for (int i = 0; i < n; i++) {
        scanf("%d", &data[i]);
    }

    int count = 0;
    int count_1 = 0;

    float sum = 0.0;

    for (int i = 0; i < n; i++) {
        if (data[i] < 0) {
            count++;
        }

        if(data[i] > 0) {
            sum += data[i];    
            count_1++;
        }

    }

    if (count_1 == 0) {
        printf("%d 0.0\n", count);
    } else {
        printf("%d %.1f\n", count, sum / count_1);
    }
    return 0;
}
发表于 2023-08-17 13:52:20 回复(0)
#include <stdio.h>
int main() {
    int n = 0;
    int i = 0;
    int arr[2001]={0};
    int negative_num = 0;//记录-1的个数
    double sum = 0;//正整数的总和
    int num = 0;//记录正整数的个数
    int zero_num = 0;//记录零的个数
    double aver_num = 0;//正整数的平均值
    scanf("%d",&n);
    for(i = 0;i<n;i++)
    {
        scanf("%d ",&arr[i]);
        if(arr[i]>0)
        {
            sum+=arr[i];
            num++;
        }     
        else if(arr[i]<0)
            negative_num++;
        else
            zero_num++;

    }
    if(zero_num==n)
        aver_num = 0;
    else
        aver_num=sum/num;
    
    printf("%d %.1lf",negative_num,aver_num);
    return 0;
}

发表于 2023-08-11 21:19:40 回复(0)
#include<stdio.h>

int main() {
    int n = 0;
    int arr[2000] = { 0 };
    scanf("%d", &n);
    int i = 0;
    int count = 0;
    int ret = 0;
    int sum = 0;
    for (i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    for (i = 0; i < n; i++) {
        if (arr[i] < 0) {
            count++;
        } else if (arr[i] > 0) {
            sum += arr[i];
            ret++;
        }
    }
    if (sum == 0)
        printf("%d %.1f",count,sum*0.0);
    else
    printf("%d %.1f", count, sum * (1.0) / ret);
    return 0;
}
发表于 2023-02-18 15:12:59 回复(0)
#include<stdio.h>
#include<stdlib.h>
int main() {
    int n = 0;
    while (scanf("%d", &n) != EOF) {
        int i = 0;
        int sum = 0;
        float ava = 0.0f;
        int cnt1 = 0;//记录负数
        int cnt2 = 0;//记录除0后的数
        int cnt3 = 0;//记录0的个数
        int* arr = (int*)malloc(n * sizeof(int));
        for (i = 0; i < n; i++) {
            scanf("%d", &arr[i]);
        }
        for (i = 0; i < n; i++) {
            if (arr[i] < 0) {
                cnt1++;
            } else if (arr[i] > 0) {
                sum += arr[i];
                cnt2++;
            } else {
                cnt3++;
            }
        }
        if (cnt3 == n) {
            printf("%d 0.0", cnt1);
        } 
        else {
            ava = (double)sum / cnt2;
            printf("%d %.1f", cnt1, ava);
        }
        free(arr);
        arr = NULL;
    }
    return 0;
}

发表于 2023-01-23 14:49:04 回复(0)
#include <stdio.h>

int main()
{
    //输入
    int n=0;
    scanf("%d\n",&n);
    int arr1[2000]={0};
    int i=0;
    for(i=0;i<n;i++)
    {
        scanf("%d\n",&arr1[i]);
    }

    //查找
    //第一次判断
    int *p=&arr1[0];
    int count1=0; //标志1 计负数的个数
    double count2=0;  //标志2 计正数的个数
    int count3=0;   //标志3 计0的个数
    int sum=0;
    int arr2[]={0};
    for(i=0;i<n;i++)
    {
        if(*(p+i)<0)
        {
            count1++;
        }
        //去掉负数
        else if(*(p+i)>0)
        {
            count2++;
            sum+=*(p+i);
        }

    }
    //计算
    double eve=0;
    eve=sum/count2;
    //输出
    if(count2==0)
    {
        printf("%d 0.0",count1);
    }
    else
    {
        printf("%d %.1lf",count1,eve);
    }




}

发表于 2022-12-31 15:36:17 回复(0)
#include <stdio.h>
int main()
{
    int n=0;
    int sum=0;
    int count1=0;
    int count2=0;
    float ave=0;
    scanf("%d",&n);
    int arr[2000];
    for(int i=0;i<n;i++)
    {
        scanf("%d",&arr[i]);
        if(arr[i]>0)
        {
            sum+=arr[i];
            count1++;
        }
        else if(arr[i]<0)
        {
            count2++;
        }
            
    }

    ave=sum/(float)count1;
    if(count1==0)
    {
        ave=0;
    }
    printf("%d %.1f",count2, ave);
    return 0;
}
发表于 2022-08-27 19:49:16 回复(0)
#include<stdio.h>
#include<string.h>
int main(){
    int n;
    int a;
    int sum=0,fu=0,zh=0;
    float aver;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&a);
        if(a<0)
            fu++;
        else if(a>0)
        {
           zh++; 
           sum+=a;
        }
    }
    printf("%d ",fu);
    if(sum==0)
        aver=0.0;
    else if(sum>0)
        aver=(float)sum/zh;
    
    printf("%.1f",aver);
   
    return 0;
}

发表于 2022-07-24 16:06:35 回复(0)
#include<stdio.h>
int main()
{
	int n = 0;
	int temp = 0;
	int count1 = 0;//累计正数个数
	int count2 = 0;//累计负数个数
	float sum = 0;//计算正数和的平均值
	scanf("%d", &n);//读取输入整数的个数
	while (n > 0)
	{
		scanf("%d", &temp);
		if (temp > 0)
		{
			sum += temp;
			count1++;
		}
		else if (temp < 0)
		{
			count2++;
		}
		n--;
	}
    printf("%d ", count2);
    if (count1 == 0)
    {
        printf("0.0\n");
    }
    else 
    {
        printf("%.1f\n", sum / count1);
    }
	return 0;
}    

发表于 2022-07-12 18:51:27 回复(0)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
    int n,i=0,tmp = 0;
    int s = 0,negative_nums = 0,postive_nums = 0;
    float aver = 0;
    while(scanf("%d",&n)!=EOF)
    {
        s=0;
        negative_nums = 0;
        postive_nums = 0;
        for(i=0;i<n;i++)
        {
            scanf("%d",&tmp);
            if(tmp > 0)
            {
               postive_nums++;
               s += tmp; 
            }
            else if(tmp < 0)
            {
               negative_nums++; 
            }
        }
        if(postive_nums)
        {
            aver=(1.0*s/postive_nums);
        }
        else
        {
            aver=0;
        }
        printf("%d %.1f\n",negative_nums,aver);
    }
    return 0;
}
发表于 2022-06-19 19:34:07 回复(0)
#include <stdio.h>
#define    N    2000
int main()
{
    int n,i,j=0,temp,negative=0,positive[N];
    float num=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&temp);
        if(temp>0)
            positive[j++]=temp;
        else if(temp<0)
            negative++;
    }
    for(i=0;i<j;i++)
        num+=positive[i];
    if(j>0)
        num/=j;
    printf("%d %-6.1f\n",negative,num);
    return 0;
}

发表于 2022-04-26 16:07:54 回复(0)
#include<stdio.h>
int main(){
    int n,m;
    while(~scanf("%d",&n)){
        int negative=0,positive=0;
        float sum=0;
        for(int i=0;i<n;i++){
            scanf("%d",&m);
            if(m<0) negative++;
            if(m>0){
                positive++;
                sum += m;
            }
        }
        printf("%d ",negative);
        if(positive==0)
            printf("0.0\n");
        else
            printf("%.1f\n",sum/positive);
    }
}

发表于 2022-04-19 16:09:57 回复(0)

问题信息

难度:
28条回答 24376浏览

热门推荐

通过挑战的用户

查看代码
记负均正