C语言:计算数组元素平均值

C语言:计算数组元素平均值,第1张

C语言:计算数组元素平均值

问题:使用 for 循环迭代出输出元素,并将各个元素相加算出总和,再除于元素个数:

代码1:

#include 

int main() {
   int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
   int sum, loop;
   float avg;

   sum = avg = 0;

  for(loop = 0; loop < 10; loop++) {
    sum = sum + array[loop];
   }

   avg = (float)sum / loop;
	   
   printf("平均值为 %.2f", avg);   

   return 0;
}

运行结果:

平均值为 4.50

代码2:用户自定义输入

#include 

int main()
{
int n, i;
float num[100], sum = 0.0, average;

printf("输入元素个数: ");
scanf("%d", &n);

while (n > 100 || n <= 0)
{
    printf("Error! 数字需要在1 到 100 之间。n");
    printf("再次输入: ");
    scanf("%d", &n);
}

for(i = 0; i < n; ++i)
{
    printf("%d. 输入数字: ", i+1);
    scanf("%f", &num[i]);
    sum += num[i];
}

average = sum / n;
printf("平均值 = %.2f", average);

return 0;
}

运行结果:

输入元素个数: 4
1. 输入数字: 1
2. 输入数字: 2
3. 输入数字: 4
4. 输入数字: 8
平均值 = 3.75

代码3:可以用 scanf 的特性来控制循环

#include 

int main(void)
{
float x;
printf("请输入数字:(输入q退出)");
int i=0;
float status;
float sum=0;
float avg=0;
status=scanf("%f", &x);
while ( status==1 ) {
    sum+=x;
    printf("请输入数字:(输入q退出)");
    status=scanf("%f", &x);
    i++;
}
avg=sum/(i);
printf("%.2f",avg);
return 0;
}

代码4:使用递归

#include 
#include 

#define SAFE_FREE(p) 
free(p);         
p = NULL;

int *reverseSentence();
int leng;

int main()
{
int *p = NULL;
printf("输入一组整数: ");
p = reverseSentence();

int sum = 0;
for (int i = 0; i < leng; i++)
{
    sum += p[i];
}
printf("数组和:%d", sum);

SAFE_FREE(p);

return 0;
}

int *reverseSentence()
{
static int sum, num;
static int *p;
int n;
char c;
scanf("%d%c", &n, &c);

sum++;
if (c != 'n')
{
    reverseSentence();
}
else
{
    p = malloc(sizeof(int) * sum);
}
num++;
p[sum - num] = n;

if (sum == num)
{
    leng = sum;
    printf("整数数组长度:%dn", leng);
    sum = num = 0;
}

return p;
}

运行结果:

输入一组整数: 6 99 8
整数数组长度:3
数组和:113

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5593120.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存