我是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);
}
答案 0 :(得分:0)
在开头声明如下:
void temperatures(float n[10][20]);
而不是
void temperatures(float);
然后将函数void temperature(float n[10][20])
称为
temperatures(array);
而不是
temperatures(array[10][20]);
此外,您尚未在i
中声明变量j
和int main()
int i, j;
使用前。