阵列变数(2)
练习1:数字统计
- 请使用者输入10个整数后,输出最大与平均值
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
13 23 78 77 37 30 40 50 83 99
Max: 99
Avg: 53
Process returned 0 (0x0) execution time : 36.634 s
Press any key to continue.
// 三个参数都狗在一起 #include <stdio.h> int main() { int i, n, max, avg, sum = 0; for (i = 1; i <= 10; i++) { scanf("%d", &n); // 读数字 if (i == 1 || n > max) { max = n; // 把第一个数赋值给max,比较合理,如果max直接等于0,那就没有考虑负数的情况 } sum += n; // sum每次加数 } avg = sum / 10; printf("Max: %d\n", max); printf("Avg: %d\n", avg); return 0; } // 各参数依次分开 #include <stdio.h> int main() { int i, n[10], avg; for (i = 1; i <= 10; i++) { scanf("%d", &n[i-1]);// 数组是从0开始的 } int max = n[0]; // 把max是为第一个数 for (i = 1; i < 10; i++) { if (n[i] > max) { max = n[i]; } } int sum = n[0]; for (i = 1; i < 10; i++) { sum += n[i]; } avg = sum / 10; printf("Max: %d\n", max); printf("Avg: %d\n", avg); return 0; } // 使用函式来做 #include <stdio.h> #include <stdlib.h> int max10(int n[10]); int avg10(int n[10]); void main() { int i, n[10]; for (i =1; i <= 10; i++) { scanf("%d", &n[i-1]); } printf("Max: %d\n", max10(n)); printf("Avg: %d\n", avg10(n)); return 0; } int max10(int n[10]){ int i, max; for (i = 1; i <= 10; i++) { if (i == 1 || n[i-1] > max) { max = n[i-1]; } } return max; } int avg10(int n[10]) { int i, sum=0; for (i = 1; i <= 10; i++) { sum += n[i-1]; } return sum /10; }
练习2:(1)产生不重复乱数的练习
- 随机产生一组由10个1到10之间的数字所组成的序列,序列里面没有重复的数字
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand(time(0)); int i, j, n[10]; for (i = 1; i <= 10; i++) { do { n[i-1] = rand() % 10 + 1;// rand()是产生乱数的函式,rand() % 10 产生1到9,然后再加1;就是1到10了 for (j = 1; j <= i; j++) { if (n[i-1] == n[j-1]) { break; } } }while (j != i); // j=i表示这个值没有被用过,j!=表示这个值被用过了,没有自然的结束,被break了。 printf(" %d", n[i -1]); } printf("\n"); return 0; } 2 10 8 6 5 4 7 3 1 9 Process returned 0 (0x0) execution time : 7.412 s Press any key to continue.
(2)产生不重复乱数的练习
- 随机产生一组由10个1到10之间的数字所组成的序列,序列里面没有重复的数字
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand(time(0)); int i, n, counter[10] = {10};// 统计1到10有没有被使用过,计数,为1次表示只用一次没有重复 for (i = 1; i <= 10; i++) { do { n = rand() % 10 + 1;// rand()是产生乱数的函式,rand() % 10 产生1到9,然后再加1;就是1到10了 } while (counter[n-1] != 0);// printf(" %d", n); counter[n-1]++; } printf("\n"); return 0; } 5 2 3 8 10 4 7 6 9

更多精彩