吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1462|回复: 10
收起左侧

[求助] //找出若干个非零数中的最小值和平均值。

[复制链接]
djdgf4 发表于 2022-4-7 18:06
本帖最后由 djdgf4 于 2022-4-9 21:22 编辑

[C] 纯文本查看 复制代码
//找出若干个非零数中的最小值和平均值
#include<stdio.h>
int main()
{
    int i;
    float x,m,s,a;
    if(x != '\r') 
        {
            m=x;
            s=x;
        }
    for(i=1;;i++)
    {
        scanf("%f", &x) ;
        if(x==0) break;
        s=s+x;
        if (m>x)
            m=x;
    }
a=s/i;
printf("最小值m=%f,平均值a=%f",m,a);
return 0;
}

结果好像是死循环?
要求中是若干个数,而且不是以零为结束,结束条件应该是换行或者回车。\n和\r我都试过了,也没有任何输出,代码应该哪里出了问题,请指点
其中一组测试输入是1,2,3,4,5
这是原题目
image.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

CC000731 发表于 2022-4-7 21:54
没有控制循环次数,结束条件
xianhug 发表于 2022-4-8 00:26
本帖最后由 xianhug 于 2022-4-8 00:29 编辑

先声明n,元素个数

for(i=1;i++;i <= n)
    {
scanf("%d", &n);      
scanf("%f", &x) ;
        if(x==0) break;
        s=s+x;
        if (m>x)
            m=x;
    }
a=s/n;
printf("最小值m=%f,平均值a=%f",m,a);
return 0;
}
 楼主| djdgf4 发表于 2022-4-8 08:49
xianhug 发表于 2022-4-8 00:26
先声明n,元素个数

for(i=1;i++;i x)

要求是若干个数,而且不以0为结束标志
Lindetu 发表于 2022-4-8 09:28
//找出若干个非零数中的最小值和平均值
#include<stdio.h>
int main()
{
    int i;
    float x, m, s, a;
    for (i = 1;; i++)
    {
        scanf("%f", &x);
        if (x == 0) break;
        if (x != '\r')
        {
            m = x;
            s = x;
        }
        s = s + x;
        if (m > x)
            m = x;
    }
    a = s / i;
    printf("最小值m=%f,平均值a=%f", m, a);
    return 0;
}
 楼主| djdgf4 发表于 2022-4-8 17:05
Lindetu 发表于 2022-4-8 09:28
//找出若干个非零数中的最小值和平均值
#include
int main()

您这个我试了下,也是死循坏
unmask 发表于 2022-4-8 19:21
[C] 纯文本查看 复制代码
//找出若干个非零数中的最小值和平均值
#include <stdio.h>
int main()
{
    int n = 0;
    float x = 0, m = 0, s = 0, a;
    printf("请输入数据个数:");
    scanf("%d", &n);

    for (int i = 1; i <= n; ++i)
    {
        scanf("%f", &x);
        s = s + x;
        m = m == 0 || m > x ? x : m;
    }

    a = s / n;
    printf("最小值m=%f,平均值a=%f", m, a);
    return 0;
}
 楼主| djdgf4 发表于 2022-4-8 20:22
unmask 发表于 2022-4-8 19:21
[mw_shl_code=c,true]//找出若干个非零数中的最小值和平均值
#include
int main()

数据个数是未知的
云在天 发表于 2022-4-8 23:56
本帖最后由 云在天 于 2022-4-9 00:05 编辑

任何边界条件都没有?
怎么读的这些数?靠人工输入?

不知道何时停止,就在每次输入新的数据后生成新的平均值和最小值。

知道何时停止,你的循环就不是死循环

[C] 纯文本查看 复制代码
#include <stdio.h>

int main()
{
	double min,sum,ave;
	min = -1;
	sum = 0;
	ave = 0;
	for(int i = 1;;i++)
	{
		double input;
		scanf("%lf",&input);
		if(input < min || min == -1)
		    min = input;
		sum += input;
		ave = sum / i;
		printf("The min is %lf, average is %lf\r\n",min,ave);
	}
	return 0;
}

凑合看吧,不会写C
 楼主| djdgf4 发表于 2022-4-9 13:40
云在天 发表于 2022-4-8 23:56
任何边界条件都没有?
怎么读的这些数?靠人工输入?

估计是以回车或者换行为结束的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-16 08:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表