新编C语言程序设计教程练习六参考答案
新编C语言程序设计教程练习六参考答案练习6 6.1 输入10个整数,计算它们的平均值。找出最小数,再找出与平均值最接近的整数。 #include void main() { int a[10], ave, min, dif, pos, i; ave = min = 0; for(i=0; i<10; ++i) { scanf("%d", &a[i]); ave += a[i]; if(a[i] < a[min]) min = i; } ave /= 10; printf("平均值为%d,最小数为%d,", ave, a[min]); min = ave - a[0] > 0 ? ave - a[0] : a[0] - ave; pos = 0; for(i=1; i<10; ++i) { dif = ave - a[i] > 0 ? ave - a[i] : a[i] - ave; if(dif < min) { min = dif; pos = i; } } printf("与平均值最接近的整数为%d\n", a[pos]); } 6.2 输入20个1至5之间的整数,给出1至5每个数出现的次数。 #include void main() { int a[6] = {0}, i; for(i=0; i<20; ++i) { scanf("%d", &a[0]); if(a[0] > 5 || a[0] < 1) { printf("输入错误"); return; } ++a[a[0]]; } for(i=1; i<6; ++i) printf("%d出现了%d次!\n", i, a[i]); } 6.3 分析下面的程序 1. #include void main( ) { int a[35] = {1}; int i, k, n, m; for(n=2; n<=1000; ++n) { k = 1; m = n - 1; for(i=2; i0; --i) printf("%d + ", a[i]); printf("%d\n", a[0]); } } } 2. #include void main( ) { int i, j, a[10], temp; for(i=0; i<10; ++i) { a[i] = i; printf("%3d", a[i]); } i = 0; j = 9; while(i void main( ) { char ch; int val, i, sign = 1; val = i = 0; printf("请输入一个二进制整数\n"); ch = getchar(); if(ch == '-') sign = -1; else if(ch == '0' || ch == '1') val = ch