注册 登录
编程论坛 C语言论坛

引用sprt的wen

疯哈 发布于 2021-11-15 09:34, 1439 次点击
程序代码:
#include <math.h>
#include <stdio.h>
int main()
{int n=0;

 double a[3],b=0,c,d,x=0,s;

 for(n=0;n<=2;n++)
scanf("%lf",&a[n]);    //输入用空格断开
c=n;
printf("个数%f \n",c);
for(n=0;n<=c-1;n++)
b=b+a[n];
b=b/c;
printf("平均数%f \n",b);
for(n=0;n<=c-1;n++)
{
d=a[n]-b;
x=x+d*d;
}
printf("各项平方和%f \n",x);
c=c*(c-1) ;
s=x/c;
s=sqrt(s);
printf("不确定度是%f \n",s);
return 0;
}



有个问题1.暂时这个程序只能在输入前就必须知道数据的个数,而不能再输入数据后再利用数据个数(现在就是以3个数据为例 (1 2 3))

希望有大佬解答谢谢


[此贴子已经被作者于2021-11-15 10:06编辑过]

4 回复
#2
diycai2021-11-15 11:00
标准C是不支持不定长度的数组声明的,
有两种办法,第一种就是声明时把数据长度设置的非常大,
第二种就是利用标准C的库函数malloc动态从堆中申请内存。
#3
rjsp2021-11-15 11:17
你要告诉别人你想干什么!
当你输入 1 2 3 之后,程序能知道你就只想输入3个数,于是输出结果;还是想输入5个数,于是等待你输入第4个数?
方法有很多,你得告诉别人你想怎么做?
#4
apull2021-11-15 11:27
动态数组,链表都可以实现你的要求哈。
#5
白白白小白2021-11-15 14:19
程序代码:
/*把输入的数都放入到数组a[cnt]中*/
#include <stdio.h>
int main()
{   
    int x,cnt=0,a[cnt];  //a[cnt],每输入一个数cnt会加1,cnt就是数据的个数
    double sum=0;
    scanf("%d",&x);
    while(x!=-1)
    {
        a[cnt]=x;
        sum+=x;
        cnt++;
        scanf("%d",&x);
    }
    if(cnt>0)
    {
        double average=sum/cnt;
        printf("average=%f\n",average);
    }

    return 0;
}
1