почему возникает эта ошибка при компиляции, как решить неявное объявление функции?

#c #gcc-warning

Вопрос:

     #include<stdio.h>
    #include<math.h>
    float val [4][2],a[4];
    int j,i,y;
    
    float cordianation_entry() {  
        printf("enter your cordianation-");
        scanf("%f,%f",amp;val[0][0],amp;val[0][1]);
        for(j=1;j<4;j  ) {
            printf("enter station %d coordination-",j);
            scanf("%f,%f",amp;val[j][0],amp;val[j][1]);
       }    
    }
    
    float results_analysis() {
      
       for(i=1;i<4;i  ) { 
        a[i] = (pow((val[i][0]-val[0][0]),2))   (pow((val[i][1]-val[0][1]),2));
        a[i]=sqrt(a[i]);
        printf("n*distance to station %d is %fn",i,a[i]);
        if(a[i]<100)
        printf("tDistance is Low");
        else if(a[i]<1000 amp;amp; a[i]>=100)
        printf("tDistance is Moderate");
        else 
        printf("tDistance is High");
       }
 

компилятор не читает эту минимальную функцию
минимум поплавка() {

         if(a[1]<a[2]amp;amp;a[1]<a[3])
        printf("station 1 is the nearest");
        else if(a[2]<a[3]amp;amp;a[2]<a[1])
        printf("station 2 is the nearest");
        else if(a[3]<a[1]amp;amp;a[3]<a[2])
        printf("station 2 is the nearest");
    }
    
    
    
    
    }
    
 

доза компилятора не определяет минимальную функцию, как ее решить
когда он компилируется, он показывает сообщение об ошибке, требующее снижения минимальной функции

 void main() {   
   cordianation_entry();
   results_analysis();
   minimum();
}
 

Комментарии:

1. пожалуйста, помогите мне, я не могу найти решение

2. в чем здесь ошибка

3. Это порядок функций, как в полном коде? Если нет, можете ли вы опубликовать весь код, чтобы я мог увидеть, правильный ли порядок объявления?

4. как это исправить это полный код, но минимальная функция, которую может распознать компилятор

Ответ №1:

Проблема в том, что вы неправильно использовали {} круглые скобки. В частности, эта функция:

 float results_analysis() {
  
   for(i=1;i<4;i  ) { 
    a[i] = (pow((val[i][0]-val[0][0]),2))   (pow((val[i][1]-val[0][1]),2));
    a[i]=sqrt(a[i]);
    printf("n*distance to station %d is %fn",i,a[i]);
    if(a[i]<100)
    printf("tDistance is Low");
    else if(a[i]<1000 amp;amp; a[i]>=100)
    printf("tDistance is Moderate");
    else 
    printf("tDistance is High");
   }
}   // <--- Missing in your code
 

и есть } скобка, которой там не должно быть:

 float minimum() {

    if(a[1]<a[2]amp;amp;a[1]<a[3])
    printf("station 1 is the nearest");
    else if(a[2]<a[3]amp;amp;a[2]<a[1])
    printf("station 2 is the nearest");
    else if(a[3]<a[1]amp;amp;a[3]<a[2])
    printf("station 2 is the nearest");
}

// }  <--- Wrong 
 

Комментарии:

1. большое вам спасибо