子函数中数组的值怎么带回主函数中?

来源:百度知道 编辑:UC知道 时间:2024/09/28 17:41:46
int fid(int c[10][7])
{
int i,j;
for(i=1;i<=10;i++)
{
for(j=3;j<=7;j++)
c[i][j]=c[i][j]+c[i][j+1];
}
for(i=1;i<=10;i++)
for(j=1;j<=7;j++)
printf("%d",c[i][j]);
}
void main()
{
int a[10][7],i,j,k=0,x=0;
char b[15]="";
scanf("%s",b[15]);
printf("%s",b[15]);
for(i=1;i<=10;i++)
for(j=1;j<=7;j++)
scanf("$d",a[i][j]);
a[10][5]=fid(c[i][j]);
for(j=3;j<=7;j++)
{
for(i=1;i<=10;i++)
if(a[i][7]<a[i+1][7])
{
a[i][j]=k;a[i][j]=a[i+1][j];k=a[i+1][j];
b[i]=x;b[i]=b[i+1];b[i+1]=x;
}
}

printf("%d",a[i][j]);
printf("%s",b[i]);
}
程序又没有错误啊!还有阿程序是用来进行成绩排名用的,很急用的!

数组的默认传递就是按地址传递,你在函数里修改了数组元素,回到主程序数组也就被修改了

有错误,下面是语法错误:
1. fid那个函数没有return;
2. scanf("%s",b[15]);
printf("%s",b[15]);
应改成:
scanf("%s",b); //数组名表示数组地址, scanf第二个参数要用地址
printf("%s",b);
3. scanf("$d",a[i][j]);
改成scanf("%d",&a[i][j]);

4. 最后一句printf("%s",b[i]);可以改成printf("%c", b[i]);//打印一个字符
或者printf("%s",b);//打印整个字符串。

希望对你有帮助!