你这样写不太好,我建议使用结构体来存储数据,可以一开始初始化一个大一点的结构体数组,在主程序里面用一个while循环(你可以设一个标志为退出),同时在里面用switch表示各个功能项,增加会员信息就是在结构体数组中增加一个成员,修改就是修改指定结构体成员的属性值。
用数组时,必须要知道二维数组的后一个维度,否则无法正确修改,比如: void modify(int a[][10]) { a[1][2] = 12; a[2][5] = 25; } void main() { int a[5][10]; a[1][2] = 0; a[2][5] = 0; modify(a); printf("a(1,2)=%d, a(2,5)=%d\n",12, 25); } 用指针方式实现时要注意二维数组的建立过程。比如以上的int a[5][10],用指针实现相同功能的代码如下: void modify(int **a) { a[1][2] = 12; a[2][5] = 25; } void main() { int **a; a = (int **) malloc( sizeof(int *) *5); for(int i=0 ; i<5 ; i++) a[i]=(int *) malloc(sizeof(int)*10); a[1][2] = 0; a[2][5] = 0; modify(a); printf("a(1,2)=%d, a(2,5)=%d\n",12, 25); } 追问 这是我的源代码
#include<stdio.h>void Ch_g(float B[][4]);int main(){ float A[3][4],m=0; int i,j;for(i=0;i<3;i++) { for(j=0;j<4;j++) { A[i][j]=m+1; m=m+1; } } for(i=0;i<3;i++) { for(j=0;j<4;j++) { printf(" %f\t",A[i][j]); } printf("\n"); } printf("\n"); printf("\n"); printf("\n"); Ch_g(A); printf("数组改变后的值为以下输出\n"); for(i=0;i<3;i++) { for(j=0;j<4;j++) { printf("%f\t",A[i][j]); } printf("\n"); }printf("\n"); printf("\n"); return 0; } void Ch_g(float B[][4]) { int i,j; float m=2; for(i=0;i<3;i++) { for(j=0;j<4;j++) { B[i][j] = B[i][j]+1; } } }