我们刚学函数,还没有学指针,如何利用函数实现可以自由输入一个数组的长度? 不知道我这个程序哪里有问题 10
#include<stdio.h>voidf(intn){inta[n][n];}intmain(){inti,j,n;scanf("%d",&n);f(n);for(i...
#include<stdio.h>
void f(int n){
int a[n][n];
}
int main(){
int i,j,n;
scanf("%d",&n);
f(n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=8;
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("%2d",a[i][j]);
printf("\n");}
return 0;
} 展开
void f(int n){
int a[n][n];
}
int main(){
int i,j,n;
scanf("%d",&n);
f(n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=8;
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("%2d",a[i][j]);
printf("\n");}
return 0;
} 展开
2个回答
展开全部
c语言貌似不支持动态长度的数组吧?一般我们都是直接先声明一个足够长的数组,然后用多少再让用户输入即可,函数式用来重复调用的,并不是解决这种问题。你这程序改为:
#include<stdio.h>
int main(){
int a[n][n];
int i,j,n;
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=8;
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("%2d",a[i][j]);
printf("\n");}
return 0;
}
另外提醒一下你,大括号虽然可以省略但是实际上我们一般为了可读行不做省略。
#include<stdio.h>
int main(){
int a[n][n];
int i,j,n;
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=8;
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("%2d",a[i][j]);
printf("\n");}
return 0;
}
另外提醒一下你,大括号虽然可以省略但是实际上我们一般为了可读行不做省略。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询