【发布时间】:2020-04-29 11:59:56
【问题描述】:
- 接收来自主
matrix_1的输入,我需要创建一个新的并仅打印奇数。现在我从函数打印它,但我需要从main()打印它;我该怎么做?
#include <stdio.h>
#define len 4
void copiaDispari();
int main () {
int i, j, matrix_1[len][len];
for (i=0; i < len; i++){
for (j=0; j < len; j++) {
printf ("Inserisci il numero della matrice %d %d:", i, j);
scanf ("%d", &matrix_1[i][j]);
}
}
copiaDispari(matrix_1);
for (i=0; i < len; i++){
for (j=0; j < len; j++) {
printf ("%d", matrix_2[i][j]);
}
printf("\n");
}
return 0;
}
void copiaDispari(int matrix_1[len][len]) {
int matrix_2[len][len]= {{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}}, i, j, l=0, m=0;
for (i=0; i < len; i++){
for (j=0; j < len; j++){
if (matrix_1[i][j]%2!=0){
if (l==4) {
l=0; m++;
}
matrix_2[m][l] = matrix_1[i][j];
l++;
}
}
}
for (i=0; i < len; i++){
for (j=0; j < len; j++) {
printf ("%d", matrix_2[i][j]);
}
printf("\n");
}
return;
}
- 假设我必须将 5 或 6 个变量从函数
void yeah()传递给另一个函数void yessss();我怎样才能实现它? - 什么时候应该使用 void 函数,什么时候应该使用 int 函数?
【问题讨论】:
-
传统上使用大写的常量——例如
#define LEN 4——留下小写的用于变量。看到int matrix_1[len][len]的人认为len是一个变量,而不是一个常数。 C99 及更高版本允许使用可变长度数组。 -
感谢您的建议,您能帮我完成这个程序吗? [在这个练习中,我从主矩阵中获取输入,我需要使用名为 copiaDispari 的函数创建一个新矩阵,并仅使用赔率数字打印它......现在我从函数 copiaDispari 打印它,但我需要从 main() 打印它,我该怎么做?,为了做到这一点,我认为我应该以某种方式将 matrix_2 传递给 main,然后使用 2 个 for 循环我应该打印它。]跨度>
-
在stackoverflow.com/questions/14088804/…查看调用者预先创建结果矩阵和被调用者动态分配结果矩阵的示例