#include<stdio.h>
#include<stdlib.h>
void generate_matrices(int a[5][5], int b[5][5]);
void print_matrix(int a[5][5]);
void multiply_matrices(int a[5][5], int b[5][5], int c[5][5]);
void calc_trace(int a[5][5]);
int main()
{
int a[5][5],b[5][5];
generate_matrices(a,b);
print_matrix(a);
return 0;
}
void generate_matrices(int a[5][5], int b[5][5])
{
int seed,i,j;
printf("Enter seed integer value: ");
scanf("%d",&seed);
printf("\n\nSeed Value is %d\n\n",seed);
srand(seed);
for(i=0;i<5;i++) {
for(j=0;j<5;j++) {
a[i][j]=rand() %51 + (-25);
b[i][j]=rand() %51 + (-25); }
}
}
void print_matrix(int a[5][5]) {
int i,j;
printf("Matrix A:\n");
for(i=0;i<5;i++){
for(j=0;j<5;j++){
printf("%d ",a[i][j]); }
printf("\n");
}
printf("\nMatrix B:\n");
for(i=0;i<5;i++){
for(j=0;j<5;j++){
printf("%d ",a[i][j]); }
printf("\n");
}
}
这是我的一段代码。 generate_matrices
函数工作正常,但我需要帮助的函数是print_matrix
函数。我需要调用此函数两次,并生成2个不同的数组。目前我在函数中调用了两次a [i] [j],但是我的第二个a [i] [j]需要是b [i] [j]。
问题是,我不明白如何调用1个函数来生成2个不同的数组?如果我还没有说清楚,例如:
(...)
print_matrix(a)
print_matrix(b)
(...)
void print_matrix(int a[5][5])
{
(...)
}
所以我调用两次相同的函数来打印2个不同的数组,但是我不明白你怎么能在第一次调用函数时只产生1个数组,然后用另一个变量再次调用同一个函数生产第二个阵列?当然第一次调用函数会产生函数本身创建的所有东西???
仅供参考:我无法更改函数名称,也无法在函数名称等中创建指针。
我希望我已经相对清楚,欢呼。
答案 0 :(得分:1)
转动此部分代码:
void print_matrix(int a[5][5]) {
int i,j;
printf("Matrix A:\n");
for(i=0;i<5;i++){
for(j=0;j<5;j++){
printf("%d ",a[i][j]); }
printf("\n");
}
printf("\nMatrix B:\n");
for(i=0;i<5;i++){
for(j=0;j<5;j++){
printf("%d ",a[i][j]); }
printf("\n");
}
}
进入这个:
void print_matrix(int a[5][5]) {
int i,j;
for(i=0;i<5;i++){ //removed matrix dependent line
for(j=0;j<5;j++){
printf("%d ",a[i][j]); }
printf("\n");
} //removed the bottom section of code.
}
然后在主要你这样称呼它:
int main()
{
int a[5][5],b[5][5];
generate_matrices(a,b);
printf("Matrix A:\n"); // tells you which matrix
print_matrix(a); // Pass in matrix a
printf("Matrix B:\n"); // tells you which matrix
print_matrix(b); // Pass in matrix b
return 0;
}
这将彼此独立地打印每个矩阵。这可以通过改变你传递到'print_matrix()&#39;中的矩阵来进一步扩展到N矩阵。功能