我的程序为什么输不出值 跟教程差不多 就是定义一个5*6的二维数组 随机赋值10-40 然后求每一行平均值输出
#include<stdio.h>#include<stdlib.h>voidgetdata(int(*)[6]);voidlineave(int[][6],float*...
#include<stdio.h>
#include<stdlib.h>
void getdata(int (*)[6]);
void lineave(int [][6],float *);
void outdata(int [5][6],float *);
main()
{
int a[5][6];
float b[5];
getdata(a);
lineave(a,b);
outdata(a,b);
}
void getdata(int (*a)[6])
{
int i,j,x;
for(i=0;i<5;i++)
{
j=0;
while(j<6)
{
x=rand()%41;
if(x>10)
{
a[i][j]=x;
j++;
}
}
}
}
void lineave(int a[][6],float *b)
{
int i,j,sum;
for(i=0;i<5;i++)
{
sum=0;
for(j=0;j<6;j++)
{
sum+=a[i][j];
b[i]=sum/6;
}
}
}
void outdata(int a[5][6],int *b)
{
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<6;j++)
printf("%d",a[i][j]);
printf("%f",b[i]);
}
}
我还想问一下 数组b作为实参名 b[]可以作为对应的形参名??? 是不是调用了b的地址之后 b[]就可以赋值输出了 展开
#include<stdlib.h>
void getdata(int (*)[6]);
void lineave(int [][6],float *);
void outdata(int [5][6],float *);
main()
{
int a[5][6];
float b[5];
getdata(a);
lineave(a,b);
outdata(a,b);
}
void getdata(int (*a)[6])
{
int i,j,x;
for(i=0;i<5;i++)
{
j=0;
while(j<6)
{
x=rand()%41;
if(x>10)
{
a[i][j]=x;
j++;
}
}
}
}
void lineave(int a[][6],float *b)
{
int i,j,sum;
for(i=0;i<5;i++)
{
sum=0;
for(j=0;j<6;j++)
{
sum+=a[i][j];
b[i]=sum/6;
}
}
}
void outdata(int a[5][6],int *b)
{
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<6;j++)
printf("%d",a[i][j]);
printf("%f",b[i]);
}
}
我还想问一下 数组b作为实参名 b[]可以作为对应的形参名??? 是不是调用了b的地址之后 b[]就可以赋值输出了 展开
2个回答
展开全部
#include<stdio.h>
#include<stdlib.h>
void getdata(int (*)[6]);
void lineave(int [][6],float *);
void outdata(int [5][6],float *);
main()
{
int a[5][6];
float b[5];
getdata(a);
lineave(a,b);
outdata(a,b);
}
void getdata(int (*a)[6])
{
int i,j,x;
for(i=0;i<5;i++)
{
j=0;
while(j<6)
{
x=rand()%41;
if(x>10)
{
a[i][j]=x;
j++;
}
}
}
}
void lineave(int a[][6],float *b)
{
int i,j,sum;
for(i=0;i<5;i++)
{
sum=0;
for(j=0;j<6;j++)
{
sum+=a[i][j];
b[i]=sum/6;
}
}
}
void outdata(int a[5][6],float *b)
{
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<6;j++)
printf("%d\t",a[i][j]);
printf("%f",b[i]);
printf("\n");
}
}
这是改过的代码 最后一个函数的定义中b参数的类型你写错了
数组b传递给函数的时候是将数组第一个元素的地址传递的,如果使用b,只能给第一个元素赋值,如果想给整个数组赋值还是使用循环吧
#include<stdlib.h>
void getdata(int (*)[6]);
void lineave(int [][6],float *);
void outdata(int [5][6],float *);
main()
{
int a[5][6];
float b[5];
getdata(a);
lineave(a,b);
outdata(a,b);
}
void getdata(int (*a)[6])
{
int i,j,x;
for(i=0;i<5;i++)
{
j=0;
while(j<6)
{
x=rand()%41;
if(x>10)
{
a[i][j]=x;
j++;
}
}
}
}
void lineave(int a[][6],float *b)
{
int i,j,sum;
for(i=0;i<5;i++)
{
sum=0;
for(j=0;j<6;j++)
{
sum+=a[i][j];
b[i]=sum/6;
}
}
}
void outdata(int a[5][6],float *b)
{
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<6;j++)
printf("%d\t",a[i][j]);
printf("%f",b[i]);
printf("\n");
}
}
这是改过的代码 最后一个函数的定义中b参数的类型你写错了
数组b传递给函数的时候是将数组第一个元素的地址传递的,如果使用b,只能给第一个元素赋值,如果想给整个数组赋值还是使用循环吧
追问
额 粗心大意了 谢谢哦 !
展开全部
#include<stdio.h>
#include<stdlib.h>
void getdata(int (*)[6]);
void lineave(int [][6],float *);
void outdata(int [5][6],float *);
main()
{
int a[5][6];
float b[5];
getdata(a);
lineave(a,b);
outdata(a,b);
}
void getdata(int (*a)[6])
{
int i,j,x;
for(i=0;i<5;i++)
{
j=0;
while(j<6)
{
x=rand()%41;
if(x>10)
{
a[i][j]=x;
j++;
}
}
}
}
void lineave(int a[][6],float *b)
{
int i,j,sum;
for(i=0;i<5;i++)
{
sum=0;
for(j=0;j<6;j++)
{
sum+=a[i][j];
b[i]=sum/6;
}
}
}
void outdata(int a[5][6],float *b)
{
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<6;j++)
printf("%d\t",a[i][j]);
printf("%f\n",b[i]);
}
}
参数类型要对印,这个编译器都会帮你发现问题的!!!!
#include<stdlib.h>
void getdata(int (*)[6]);
void lineave(int [][6],float *);
void outdata(int [5][6],float *);
main()
{
int a[5][6];
float b[5];
getdata(a);
lineave(a,b);
outdata(a,b);
}
void getdata(int (*a)[6])
{
int i,j,x;
for(i=0;i<5;i++)
{
j=0;
while(j<6)
{
x=rand()%41;
if(x>10)
{
a[i][j]=x;
j++;
}
}
}
}
void lineave(int a[][6],float *b)
{
int i,j,sum;
for(i=0;i<5;i++)
{
sum=0;
for(j=0;j<6;j++)
{
sum+=a[i][j];
b[i]=sum/6;
}
}
}
void outdata(int a[5][6],float *b)
{
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<6;j++)
printf("%d\t",a[i][j]);
printf("%f\n",b[i]);
}
}
参数类型要对印,这个编译器都会帮你发现问题的!!!!
追问
啊哦 的却是这样 好粗心额 呵呵 谢谢呀!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询