#include <stdio.h>
int main(void)
{
int cal(int **a, int i);
void scan(int **a, int i);
int choose,sum;
int a1[1][1], a2[2][2], a3[3][3], a4[4][4], a5[5][5],a6[6][6] ;
printf("请输入矩阵的行数 大于等于1 小于等于6\n");
scanf("%d", &choose);
switch (choose)
{
case 1:scan(a1, 1); sum = cal(a1, 1); break;
case 2:scan(a2, 2); sum = cal(a2, 2); break;
case 3:scan(a3, 3); sum = cal(a3, 3); break;
case 4:scan(a4, 4); sum = cal(a4, 4); break;
case 5:scan(a5, 5); sum = cal(a5, 5); break;
case 6:scan(a6, 6); sum = cal(a6, 6); break;
default:printf("输入有误\n");
}
printf("结果为:%d\n", sum);
return 0;
}
int cal(int **a,int i)
{
int sum=0,m,n;
for (m = 0; m < i - 1; m++)
{
for (n = 0; n < i - 1; n++)
{
if (m + n == i)
{
break;
}
else
{
sum += a[m][n];
}
}
}
return sum;
}
void scan(int **a,int i)
{
int m,n;
for (m = 0; m < i; m++)
{
for (n = 0; n < i; n++)
{
scanf("%d",&a[m][n]);
}
}
}
改成scanf("%d",*(a+m)+n);也不好使
调试时候提示:0x0F7CC28C (msvcr120d.dll) (ConsoleApplication2.exe 中)处有未经处理的异常: 0xC0000005: 写入位置 0xCCCCCCCC 时发生访问冲突。
想问下怎么用函数给二维数组赋值
二维数组名不能直接传给二级指针,应该按以下方式使用:
int nChoose;