我是 C 编程新手,我的 C 程序有问题。 我想将 10x20 图表作为参数传递给函数。 但我不知道该怎么做。
它给了我这个编译错误:
prog.c:71:6: error: conflicting types for 'thermokrasies'
void thermokrasies(float n[10][20]){
^
prog.c:2:6: note: previous declaration of 'thermokrasies' was here
void thermokrasies(float);
^
代码是:
#include <stdio.h>
void temperatures(float);
int main(void) {
float array[10][20];
array[0][0]=3.00;
array[0][19]=-1.50;
array[9][0]=3.50;
array[9][19]=-1.00;
for (i=0; i<1; i++){
for (j=1; j<19; j++){
array[i][j]=2.00;
}
}
for (i=9; i<10; i++){
for (j=1; j<19; j++){
array[i][j]=3.00;
}
}
for (j=0; j<1; j++){
for (i=1; i<9; i++){
array[i][j]=4.00;
}
}
for (j=19; j<20; j++){
for (i=1; i<9; i++){
array[i][j]=-5.00;
}
}
for (i=1; i<9; i++){
for (j=1; j<19; j++){
array[i][j]=1.00;
}
}
temperatures(array[10][20]);
}
void temperatures(float n[10][20]){
int i,j;
float h,k,m,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10;
h=n[0][0];
k=n[0][0];
for (i=0; i<10; i++){
for (j=0; j<20; j++){
if (n[i][j]>h)
h=n[i][j];
else if (n[i][j]<k)
k=n[i][j];
else{
}
}
}
printf("To megalytero stoixeio einai to %.2f kai to mikrotero to %.2f.\n",h,k);
m=(h-k)/10;
p0=k;
p1=m+p0;
p2=m+p1;
p3=m+p2;
p4=m+p3;
p5=m+p4;
p6=m+p5;
p7=m+p6;
p8=m+p7;
p9=m+p8;
p10=m+p9;
printf("Oi perioxes 8ermokrasiwn einai: \n %.2f ews %.2f \n %.2f ews %.2f \n %.2f ews %.2f \n %.2f ews %.2f \n %.2f ews %.2f \n %.2f ews %.2f \n %.2f ews %.2f \n %.2f ews %.2f \n %.2f ews %.2f \n %.2f ews %.2f",p0,p1,p1,p2,p2,p3,p3,p4,p4,p5,p5,p6,p6,p7,p7,p8,p8,p9,p9,p10);
}
最佳答案
在开头声明如下:
void temperatures(float n[10][20]);
而不是
void temperatures(float);
然后调用函数void temp(float n[10][20])
为
temperatures(array);
而不是
temperatures(array[10][20]);
此外,您还没有在 int main()
中将变量 i
和 j
声明为
int i, j;
使用前。
关于c程序函数图参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36042178/