我需要通过将2d数组传递给函数来修改2d数组的代码,以便我在函数原始数组中编写的内容都应得到修改
#include<stdio.h>
void display(int *arr){
for(int i = 0;i < 4;i++){
printf(" %d " , arr[i]);
}
}
void modify(int *arr){
arr[0] = arr[1];
}
int main() {
int a[4] = {0,1,2,3};
display(a);
modify(a);
display(a);
}
}
输出为 0123 1123 对于一维数组,如何为二维数组编码 ----------
#include<stdio.h>
void pass(int *arr,int n){
arr[0][0]=arr[0][1];
}
int main() {
int n,i,j;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);
}
}
pass(a,n);
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%d",a[i][j]);
}
}
}
显示二维数组错误
答案 0 :(得分:1)
要使用二维数组,请使用a[n][n]
。
要将可变长度数组传递给函数,请传递大小int n
,然后传递指向数组int (*arr)[n]
的指针。
#include<stdio.h>
void pass ( int n, int (*arr)[n]){
arr[0][0] = arr[0][1];
}
int main ( void) {
int n,i,j;
printf ( "enter array size\n");
scanf ( "%d", &n);
int a[n][n];
for ( i = 0; i < n; i++) {
for ( j = 0; j < n; j++) {
printf ( "enter array[%d][%d] value\n", i, j);
scanf ( "%d", &a[i][j]);
}
}
pass ( n, a);
for ( i = 0; i < n; i++) {
for ( j = 0; j < n; j++) {
printf ( "%d\t", a[i][j]);
}
printf ( "\n");
}
return 0;
}
答案 1 :(得分:0)
#include<stdio.h>
void pass(int arr[][100], int n) {
arr[0][0] = arr[0][1];
}
int main() {
int n, i, j;
scanf_s("%d", &n);
int a[100][100];
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf_s("%d", &a[i][j]);
}
}
pass(a, n);
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d", a[i][j]);
}
}
}