Czy ten kod jest poprawny ?

0

Witam, czy ten kod jest poprawny?

 #include "stdio.h"
#include<conio.h>
using namespace std;
const int n=10;
int tab[n];
int po[n];

void merge(int t1, int sr, int t2)
{
     int i,q,j;
     for(i=t1; i<=t2; i++)
             po[i]=tab[i];
     i=t1;
     q=t1;
     j=sr+1;
     while(i <= sr && j <= t2)
     {
             if(po[i]<po[j])
                            tab[q++]=po[i++];
             else
                            tab[q++]=po[j++];
     }
     while(i <= sr) tab[q++]=po[i++];
     
     
}

void merge_sort(int t1, int t2)
{
     int sr;
     if(t1<t2)
     {
              sr=(t1+t2)/2;
              merge_sort(t1,sr);
              merge_sort(sr+1,t2);
              merge(t1,sr,t2);
     }
}
int main(){
    for(int i=0;i<n;i++)
            scanf("%d", &tab[i]);
    merge_sort(0,n-1);
    printf("%d", tab[n-2]);
    getch();
}

Błąd mam taki:

/rq/91686.src18: error: conio.h: No such file or directory
/rq/91686.src2: warning: no newline at end of file
/rq/91686.src: In function 'int main()':
/rq/91686.src error: 'getch' was not declared in this scope

0

Nie potrafisz wrzucić błędów do tłumacza ?

1.Plik conio.h nie istnieje.
2.Bodajże brak nowej linii na końcu pliku.
3.(W funkcji int main()): getch nie zostało zadeklarowane w tym zakresie/celu.

0
 #include "stdio.h"
#include<conio.h>
  1. nie jest poprawny już na pierwszej linijce, bo przed #include nie wolno robić spacji.
  2. powinno być #include <stdio.h>, albo jeszcze lepiej #include <cstdio>.
  3. korzystasz z conio.h i funkcji getch(), których jak widać nie ma w twoim kompilatorze. z jakichś chyba ideologicznych powodów nagłówek ten jest w kompilatorach pod windowsa, a nie ma pod linuksa (nawet gcc ma go pod windę, a nie ma w linuksie)
  4. brak entera na końcu ostatniej linijki, stąd ostrzeżenie „no newline”
0

ad 2) Pierwszy raz słyszę, żeby # musiało być na początku linii - zarówno przed jak i po # mogą być spacje.

#ifdef INCLUDE_MORE
  #include "more.h"
#endif

#ifdef INCLUDE_EVEN_MORE
#  include "even_more.h"
#endif

#ifdef INCLUDE_THE_WHOLE_SHEBANG
  #  include "the_whole_sheband.h"
#endif

edit: Wygląda na to, że coś takiego było w niektórych starych implementacjach preprocesora, tj jeszcze przed standardem C89, bo już od C89 jest jak powyżej.
Więcej o preprocesorze: http://tigcc.ticalc.org/doc/cpp.html#SEC6

1 użytkowników online, w tym zalogowanych: 0, gości: 1