#include<stdio.h>
#include<string.h>
int f(int (*a)[11]){
int i,j,t;
for(i=0;i<11;i++){
for(j=0;j<11;j++){
t=(*a+j)[i];
(*a+j)[i]=(*a+i)[j];
(*a+i)[j]=t;}
}
}
main(void){
int n,i,j;
printf("n:");
scanf("%d",n);
int a[n][n];
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d,",a[i][j]);
}
printf("\n");
}
f((*a)[n]);
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%d",a[j][i]);
}
printf("\n");
}
}
错误有若干个,修改如下:
#include<stdio.h>
#include<string.h>
void f(int (*a)[20],int n)
{
int i,j,t;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
t=(*a+j)[i];
(*a+j)[i]=(*a+i)[j];
(*a+i)[j]=t;
}
}
}
void main(void)
{
int n,i,j;
printf("n:");
scanf("%d",&n);
int a[20][20];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
printf("\n");
f(a,n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++){
printf("%d",a[j][i]);
}
printf("\n");
}
}
scanf("%d,",a[i][j]);
这个输入函数,给变量赋值,要指向变量的内存地址,因此需要加&
scanf("%d",&a[i][j]);你换成这样就可以啦。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632