学习C语言之函数导入二维数组及随机数函数的编写

例如:
<span style="font-size:32px;"><span style="font-size:18px;">void input(double array[][],int n);</span></span>

并不能用。正确做法是将array后填入【5】【8】之类的具体数字;

只有第一维的数组能够省略。附:电脑的寻址方式:p + i*n + j;

数组声明常用static关键字。


随机函数:

神奇的公式: next=next*1103515245+12345;

以及学到的 stdlib.h中的 rand()函数;

time.h中的time(0)函数 return值为time_t型,以及其参数为一个地址。


函数中的形参传递变量与地址的差别:

传递地址时函数改变的仍然是该地址上的数据。这点与传递变量不同。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是实现代码: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> #define ROW 5 #define COL 5 // 判断是否为质数 int isPrime(int num) { if (num <= 1) { return 0; } for (int i = 2; i * i <= num; i++) { if (num % i == 0) { return 0; } } return 1; } // 随机生成100到999之间的整数 int randInt() { return rand() % 900 + 100; } // 给二维数组随机数 void input(int arr[][COL], int row, int col) { srand((unsigned int)time(NULL)); for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { arr[i][j] = randInt(); } } } // 输出二维数组 void output(int arr[][COL], int row, int col) { for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { printf("%d ", arr[i][j]); } printf("\n"); } } // 挑选质数到一维数组 void pickPrime(int arr[][COL], int row, int col, int primeArr[], int *len) { for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { if (isPrime(arr[i][j])) { primeArr[(*len)++] = arr[i][j]; } } } } int main() { int arr[ROW][COL]; int primeArr[ROW * COL]; int len = 0; input(arr, ROW, COL); printf("二维数组:\n"); output(arr, ROW, COL); pickPrime(arr, ROW, COL, primeArr, &len); printf("质数数组:\n"); for (int i = 0; i < len; i++) { printf("%d ", primeArr[i]); } printf("\n"); return 0; } ``` 代码解析: 首先定义了常量 `ROW` 和 `COL` 分别表示二维数组的行数和列数。然后定义了三个函数 `input`、`output` 和 `pickPrime` 分别用于给二维数组随机数、输出二维数组和挑选质数到一维数组。 `input` 函数中使用了 `srand` 函数来初始化随机数种子,保证每次运行程序生成的随机数不同。然后使用 `randInt` 函数生成100到999之间的整数,赋值给二维数组的每个元素。 `output` 函数中使用两层循环遍历二维数组,输出每个元素。 `pickPrime` 函数中同样使用了两层循环遍历二维数组,判断每个元素是否为质数,如果是就加入到一维数组 `primeArr` 中,并增加 `len` 的值。 在 `main` 函数中先定义了二维数组 `arr` 和一维数组 `primeArr`,以及变量 `len` 表示质数数组的长度。然后调用 `input` 函数二维数组随机数,输出二维数组。接着调用 `pickPrime` 函数二维数组中的质数挑选出来放在一维数组 `primeArr` 中,并计算质数数组的长度。最后输出一维数组 `primeArr`。 注意:在定义二维数组 `arr` 和一维数组 `primeArr` 时,一维数组的长度应该为二维数组总共的元素个数,即 `ROW * COL`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值