练习6
6.1 输入10个整数,计算它们的平均值。找出最小数,再找出与平均值最接近的整数。 #include
int a[10], ave, min, dif, pos, i; ave = min = 0; for(i=0; i<10; ++i) { } ave /= 10;
printf(\平均值为%d,最小数为%d,\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;
scanf(\ave += a[i]; if(a[i] < a[min])
min = i;
printf(\与平均值最接近的整数为%d\\n\
}
6.2 输入20个1至5之间的整数,给出1至5每个数出现的次数。 #include
6.3 以十六进制的形式输出用户输入的十进制整数。 #include
int n; int a[8], j=0; scanf(\printf(\while(n > 0) {
a[j] = n % 16; int a[6] = {0}, i; for(i=0; i<20; ++i) { }
for(i=1; i<6; ++i)
printf(\出现了%d次!\\n\scanf(\if(a[0] > 5 || a[0] < 1) { } ++a[a[0]];
printf(\输入错误\return;
}
}
n /= 16; ++j;
for(--j; j>=0; --j)
if (a[j] > 9) else
printf(\printf(\
printf(\
或者: printf(\
6.4找出整型数组中的最大值,把它后面的元素依次前移一位,再把它放在数组的末尾。 #include
int num[N], max, i, temp; max = 0; for(i=0; i temp = num[max]; for(i=max; i num[i] = num[i + 1]; scanf(\if(num[i] > num[max]) max = i; num[i] = temp; printf(\处理后的数组为:\\n\ } for(i=0; i printf(\ 6.5 有一整型数组a[10]={20,23,37,52,95},输入5个整数存储在a中,且要保持数组a中的元素按升序排列。 #include 6.6 输入20个整数到数组num中,并对num中的偶数号元素按升序排序。 #include int i, j, num[N], temp; for(i=0; i scanf(\ int a[10]={20,23,37,52,95}, i, j, temp; for(i=0; i<=4; ++i) { } scanf(\ for(j=4+i; j>=0 && a[j]>temp; --j) a[j + 1] = a[j]; a[j + 1] = temp; printf(\添加元素后的数组为:\\n\for(i=0; i<10; ++i) printf(\ for(i=2; i } } temp = num[i]; for(j=i; j>0 && temp num[j] = num[j-2]; num[j] = temp; //按升序10个一行输出 for(i=0; i printf(\ if(i % 10 == 0) printf(\ printf(\ 6.7 输入一个5位无符号整数,输出构成这个整数的5个数字可以组成的整数中最大的及最小的5位整数(输入67890、10002测试)。 #include int bit[5], i, j, temp; unsigned num, max, min; max = min = 0; scanf(\ for(i=0; i<=4; ++i) { } for(i=1; i<=4; ++i) bit[i] = num % 10; num /= 10;