博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阵列变数(2)
阅读量:4708 次
发布时间:2019-06-10

本文共 6102 字,大约阅读时间需要 20 分钟。

15.7 数字统计

  • 请使用者输入10个整数后,输出最大与平均值

 

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 
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
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
#include
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;}

 16 产生不重复乱数的练习

  • 随机产生一组由10个1到10之间的数字所组成的序列,序列里面没有重复的数字
#include 
#include
#include
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 9Process returned 0 (0x0) execution time : 7.412 sPress any key to continue.

 

16.1 用建表法产生不重复的乱数

#include 
#include
#include
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

 

16.2  用交换法产生不重复的乱数

#include 
#include
#include
int main() { srand(time(0)); int i,n[10]; for (i = 1; i <= 10; i++) { n[i-1] = i; } for (i = 1; i <= 10; i++) { int j = rand() % (11-i) + i; int t = n[i-1]; // i与j交换 n[i-1] =n[j-1]; n[j-1] = t; printf(" %d", n[i-1]); } printf("\n"); return 0;} 9 7 10 4 1 6 5 3 8 2Process returned 0 (0x0) execution time : 2.027 sPress any key to continue. 1 5 6 3 9 8 7 2 4 10Process returned 0 (0x0) execution time : 1.686 sPress any key to continue.// 每次输出都不一样

 

17  阵列的排序问题

阵列排序好以后有如下好处:

最大、最小值,中位数,众数,查某一个数(二分)。

17.3  冒泡排序法::

#include 
int main(){ int i, j, v[5]; for (i = 0; i < 5; i++) { scanf("%d", &v[i]); }// 用回圈读数 for (i = 0; i < 5; i++) // 比较的轮数 { for (j = 0; j < 5 - i; j++) //开始一轮一轮地比数字 { if (v[j] > v[j + 1]) { int temp = v[j]; v[j] = v[j + 1]; v[j + 1] = temp; } } } for (i = 0; i < 5; i++) { printf("%d ", v[i]); } return 0;}12 13 44 10 99 10 12 13 44Process returned 0 (0x0) execution time : 7.250 sPress any key to continue.

 

18.2  阵列的阵列

 

 

18.3 用二维阵列表示九宫格

#include 
int main(){ int v[3][3], i, j, k = 1; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { v[i][j] = k; k++; printf("%d", v[i][j]); } printf("\n");// 这语句很重要,没有这个就是一排,v[1][2]=6 } printf("%d",v[1][2]); return 0;}1234567896Process returned 1 (0x1) execution time : 4.901 sPress any key to continue.

 18.4 用一维阵列表示九宫格

#include 
int main(){ int v[9]; int i; for (i = 0; i < 9; i++) { // 0~8 v[i] = i + 1; // 1~9 } for (i = 0; i < 9; i++) { printf("%d ", v[i]); if (i % 3 == 2) { //换行的条件 printf("\n"); } }}1 2 34 5 67 8 9Process returned 10 (0xA) execution time : 17.671 sPress any key to continue.

18.5  随机生成九宫格(随机产生是重点)

// 二维产生随机九宫格#include 
#include
#include
int main(){ srand(time(0)); int v[3][3] = {
{
1,2,3},{
4,5,6},{
7,8,9}}; int i, j, k = 0; // k从0开始的时候为(9-k)+k,k从1开始时为(10-k)+k for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { int r = rand() % (9-k) + k;// rand()%10表示将产生的随机数对10求余,结果为余数,整体表示产生0到9的随机数 int m = r / 3; int n = r % 3; // 求所在的行列 int t = v[i][j]; v[i][j] = v[m][n]; v[m][n] = t; k ++; } } for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf("%d ", v[i][j]); } printf("\n"); } return 0;}6 8 27 1 49 3 5Process returned 0 (0x0) execution time : 11.846 sPress any key to continue.// 一维产生随机九宫格 #include
#include
#include
int main() { srand(time(0)); int v[9] = { 1,2,3,4,5,6,7,8,9}; int i; for (i = 0; i < 9; i++) { int m = rand() % (9-i) + i; int t = v[i]; v[i] = v[m]; v[m] = t; } for (i = 0; i < 9; i++) { printf("%d ", v[i]); if (i % 3 == 2) { printf("\n"); } } return 0;}5 7 96 1 38 4 2Process returned 0 (0x0) execution time : 11.088 sPress any key to continue

 

转载于:https://www.cnblogs.com/pxxfxxxx/p/10838261.html

你可能感兴趣的文章
SQL注入原理-手工联合注入查询技术
查看>>
实验3 SQL注入原理-万能密码注入
查看>>
redis cluster
查看>>
feign传输String json串 自动转义 \ 解决方法
查看>>
本站已稳定运行了XX天,网页时间显示功能实现方法
查看>>
实习的开始阶段
查看>>
搭建第一个node服务器
查看>>
团队冲刺个人总结8
查看>>
Asp.Net Mvc Area二级域名
查看>>
C++ Boost入门
查看>>
android:intent flags
查看>>
Vue疑难杂症
查看>>
spring boot 错误处理之深度历险
查看>>
MySQL对于有大量重复数据表的处理方法
查看>>
Android应用开发学习笔记之多线程与Handler消息处理机制
查看>>
ubuntu 设置环境变量
查看>>
JSTL详解(一)
查看>>
Manacher 算法
查看>>
Linux磁盘及文件系统(三)Linux文件系统
查看>>
SDWebImage源码阅读(二)NSData+ImageContentType
查看>>