Найти среднее арифметическое скольких угодно чисел - C (СИ)
Формулировка задачи:
я нашел среднее арифмитическое и среднне гоеметрическое двух чисел
как мне усеворшенствовать код чтоб можно было считать не двух чисел а "n"
#include<stdio.h>
main()
{
int a, b, Ariv, Geom;
printf("Input a b :");
scanf("%d %d", &a, &b);
Ariv=(a+b)/2;
Geom=sqrt(a+b);
printf("Ariv=%d Geom=%d", Ariv, Geom);
}Решение задачи: «Найти среднее арифметическое скольких угодно чисел»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
double arithmetic_mean(const int * pArray, const size_t nCount) {
size_t i;
double ret;
for ( ret = 0.0, i = 0; i < nCount; ++i )
ret += pArray[i];
return ret / (double)nCount;
}
double geometric_mean(const int * pArray, const size_t nCount) {
size_t i;
double ret;
for ( ret = 1.0, i = 0; i < nCount; ++i )
ret *= pArray[i];
return pow(ret, 1.0 / (double)nCount);
}
void random_fill(int * pArray, size_t nCount, const int iLow, const int iHigh) {
while ( nCount-- )
*pArray++ = rand() % ( iHigh - iLow + 1) + iLow;
}
void dump(const int * pArray, size_t nCount) {
while ( nCount-- )
printf("%d%c", *pArray++, ( nCount ) ? ' ' : '\n');
}
/**********************************************/
#define LOW 1
#define HIGH 10
int main(void) {
int * pArray;
size_t nCount;
srand(time(NULL));
while ( printf("Number of elements: ") && scanf("%u", &nCount) == 1 && nCount ) {
if ( ! ( pArray = malloc(sizeof(int) * nCount) ) ) {
perror("malloc");
exit(1);
}
random_fill(pArray, nCount, LOW, HIGH);
printf("Array:\n");
dump(pArray, nCount);
printf("Arithmetic mean: %f\n", arithmetic_mean(pArray, nCount));
printf("Geometric mean: %f\n", geometric_mean(pArray, nCount));
free(pArray);
}
exit(0);
}