问题:使用 for 循环迭代出输出元素,并将各个元素相加算出总和,再除于元素个数:
代码1:
#includeint 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:用户自定义输入:
#includeint 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 的特性来控制循环
#includeint 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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)