[ Príspevkov: 19 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 07.11.06
Prihlásený: 16.12.08
Príspevky: 10
Témy: 3 | 3
NapísalOffline : 16.12.2008 10:35 | C - chyba v syntaxe

Mam problem s jednym programom v Cecku, v programovani som amater, nakoniec sa mi vsak podarilo dat nejako dokopy jednoduchy program co potrebujem do skoly. Problem je ze vypisuje error pri predposlednom break-u , neviem s tym pohnut...
Kód:
#include <stdio.h>
#include <stdlib.h>
  void nacitanieM(int x,int y,int A[x][y]);
  void vypisM(int x,int y,int A[x][y]);
  void sucetM (int x,int y,int A[x][y],int B[x][y],int C[x][y]);
 
int main()

{         
    int volba;
    int a,m,n;
   
  printf("Pre vypocet suctu dvoch cisel stlac 1 : \n");
  printf("Pre vypocet rozdielu dvoch cisel stlac 2 : \n");
  printf("Pre vypocet nasobku dvoch cisel stlac 3: \n");
  printf("Pre vypocet podielu dvoch cisel stlac 4: \n");
  printf("Pre vypocet suctu dvoch n-romernych matic stlac 5: \n");
  scanf("%d",&volba);
  switch (volba)
 
  {
   case '1':
            printf("bola zadana volba 1\n");
           
   int sucet(int a,int b)
{
    int s;
    s=a+b;
    return s; 
 
  };
  break;


   case '2':
            printf("bola zadana volba 2\n");
           
int rozdiel(int a,int b)
{
    int r;
    r=a-b;
    return r;
   
};
break;

  case '3':
            printf("bola zadana volba 3\n");
           

int sucin(int a,int b)
{
    int s;
    s=a*b;
    return s;
};
break;

  case '4':
            printf("bola zadana volba 4\n");
           
float podiel(float a,float b)
{
    float p;
    p=a/b;
    return p;
};
 break;
           

   
   case '5':
            printf("bola zadana volba 5\n");       
               
 printf("Zadaj pocet stlpcov matice\n");
 scanf("%d",&m);
 
 printf("Zadaj pocet riadkov matice\n");
 scanf("%d",&n);
 
  int D[m][n],E[m][n],F[m][n];
  nacitanieM(m,n,D);
  nacitanieM(m,n,E);
 
  printf("Matica A:\n");
  vypisM(m,n,D);
 
  printf("\n\n Matica B:\n");
  vypisM(m,n,E);
 
  sucetM(m,n,D,E,F);
  printf("\n\nSucet matic je :\n");
  vypisM(m,n,F);
 
 
   getch();   
  return 0;
}
 
 void nacitanieM(int x,int y,int A[x][y])
 {
 int i,j;
  for (i=0;i<x;i++)
  for (j=0;j<y;j++)

 A[i][j]=rand ()%100;
 }
 
void vypisM(int x,int y,int A[x][y])
 {
 int i,j;
for (i=0;i<x;i++)
{printf("\n");
  for (j=0;j<y;j++)

printf("%d\t",A[i][j]);
}}


 void sucetM (int x,int y,int A[x][y],int B[x][y],int C[x][y])
 {
 int i,j;
 for (i=0;i<x;i++)
  for (j=0;j<y;j++)
C[i][j]=A[i][j]+B[i][j]; }
break;
    default:                 
            printf("bolo zadane zle cislo/znak ! \n");
            break;
       
}
}


Diíky za vase rady ..


Offline

Užívateľ
Užívateľ
C -  chyba v syntaxe

Registrovaný: 16.02.08
Prihlásený: 08.12.10
Príspevky: 235
Témy: 13 | 13
NapísalOffline : 16.12.2008 13:22 | C - chyba v syntaxe

osad si nejaku tu syntax a nauc sa stabnu strukturu, pozrel som iba void sucetM(....) ale absolutne tam nesedia zatvorky. Ak spravne vidim tak riadkom C[i][j]=A[i][j]+B[i][j]; } ukoncis funkciu sucetM(...) a dalsie prikazy su mimo funkcie, co nemozu byt. Mimo funkcie mozu byt iba deklaracie...

asi vela pre tena neznamych slov som pouzil, tak v skratke:
skus pisat tak, aby sa to dalo prehladnejsie citat.
vo spominam riadku absolutne nesedia zatvorky: {} (tri si } a jedna {.


_________________
Učet je neaktívny.
Offline

Užívateľ
Užívateľ
C -  chyba v syntaxe

Registrovaný: 19.09.06
Prihlásený: 21.04.24
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 16.12.2008 13:32 | C - chyba v syntaxe

je to pisane velmi zvlastne, tie dve zatvorky co vidis na konci patria funkcii main, a ta tretia } od konca je ukoncovacia zatvorka tej funkcie a prikazy za nou su pokracovanie switchu zo zaciatku programu. Fakt sa v tom neda vyznat. povkladal si funkcie a ich tela do mainu, nikde nenacitavas tie cisla, na ktorych chces previest operacie, nikde ich nevypisujes, mas tam odveci funkcie, ktore mozu byt nahradene jednym riadkom v polovici pripadov.


Offline

Užívateľ
Užívateľ
C -  chyba v syntaxe

Registrovaný: 16.02.08
Prihlásený: 08.12.10
Príspevky: 235
Témy: 13 | 13
NapísalOffline : 16.12.2008 13:56 | C - chyba v syntaxe

ak spravne vidim, tak fakt mas funkcie definovane vo fukcii main. Myslim, ze to umoznuje iba pascal.

Ak vies co je funkcia, tak kazda funkcia musi byt definova osobitne, teda ju das mimo fukncie main a do main das iba jej nazov a parametre


_________________
Učet je neaktívny.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.04.08
Prihlásený: 15.05.15
Príspevky: 884
Témy: 3 | 3
NapísalOffline : 16.12.2008 14:14 | C - chyba v syntaxe

Podla noveho standardu ISO mozu byt funkcie definovane v tele funkcie main, aj ked sa mi to zda byt zbytocne a neprehladne, tak, ako aj tvoj kod. :-)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 07.11.06
Prihlásený: 16.12.08
Príspevky: 10
Témy: 3 | 3
Napísal autor témyOffline : 16.12.2008 14:25 | C - chyba v syntaxe

stopa27 píše:
je to pisane velmi zvlastne, tie dve zatvorky co vidis na konci patria funkcii main, a ta tretia } od konca je ukoncovacia zatvorka tej funkcie a prikazy za nou su pokracovanie switchu zo zaciatku programu. Fakt sa v tom neda vyznat. povkladal si funkcie a ich tela do mainu, nikde nenacitavas tie cisla, na ktorych chces previest operacie, nikde ich nevypisujes, mas tam odveci funkcie, ktore mozu byt nahradene jednym riadkom v polovici pripadov.



Ano ja viem je to hrozne, som lama, moj najdlhsi program mal vzdy 20riadkov a teraz toto :D ale k veci , funkcie som uz vybral pred main() a do mainu som dal vypisy, avsak stale mi pise chybu v predposlednom breaku (break statement not within loop or switch) ...


Offline

Užívateľ
Užívateľ
C -  chyba v syntaxe

Registrovaný: 16.02.08
Prihlásený: 08.12.10
Príspevky: 235
Témy: 13 | 13
NapísalOffline : 16.12.2008 14:34 | C - chyba v syntaxe

vsetko zacina snahou ;)


_________________
Učet je neaktívny.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.04.08
Prihlásený: 15.05.15
Príspevky: 884
Témy: 3 | 3
NapísalOffline : 16.12.2008 14:37 | C - chyba v syntaxe

To bude preto, ze tam ten break nema byt :) Je mimo cyklu/switchu. Asi si to tam nejak zle uzatvorkoval... ;)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.06.07
Prihlásený: 06.05.13
Príspevky: 421
Témy: 4 | 4
NapísalOffline : 16.12.2008 18:19 | C - chyba v syntaxe

Ak robis v nejakom VisualSudiu a nezdaju sa Ti zatvorky, tak chod kurzorom pred zatvorku a stlac <Ctrl + ]> ... (Control a pravu hranatu zatvorku);
kurzor Ti bude "skakat" na otvaraciu/zatvaraciu zatvorku.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 07.11.06
Prihlásený: 16.12.08
Príspevky: 10
Témy: 3 | 3
Napísal autor témyOffline : 16.12.2008 21:09 | C - chyba v syntaxe

Tak som sa snazil to spravit ale nepodarilo sa, zatvorky som kontroloval niekolko krat, a vsetko sedi, fakt neviem preco to nexce ist... :(


Offline

Užívateľ
Užívateľ
C -  chyba v syntaxe

Registrovaný: 19.09.06
Prihlásený: 21.04.24
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 16.12.2008 21:12 | C - chyba v syntaxe

mas na vyber : hod sem svoj kod a uvidime preco ti to nejde, alebo ti sem ja hodim tvoj povodny "trochu" upraveny kod, ktory funguje. Myslim ze ked pre nic ine, tak preto ze si to napisal ti treba pomoct.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 07.11.06
Prihlásený: 16.12.08
Príspevky: 10
Témy: 3 | 3
Napísal autor témyOffline : 16.12.2008 21:20 | C - chyba v syntaxe

Tak tu to je :
Kód:
#include <stdio.h>
#include <stdlib.h>
  void nacitanieM(int x,int y,int A[x][y]);
  void vypisM(int x,int y,int A[x][y]);
  void sucetM (int x,int y,int A[x][y],int B[x][y],int C[x][y]);
    int sucet(int g,int h)
{   int s;
    s=g+h;
    return s;};
int rozdiel(int g,int h)
{   int r;
    r=g-h;
    return r;};
int sucin(int g,int h)
{   int s;
    s=g*h;
    return s;};
float podiel(float g,float h)
{   float p;
    p=g/h;
    return p;};
     
int main(int argc, char *argv[])

{   int vysledok;
    int g,h;     
    int volba;
    int a,m,n;
   
  printf("Pre vypocet suctu dvoch cisel stlac 1 : \n");
  printf("Pre vypocet rozdielu dvoch cisel stlac 2 : \n");
  printf("Pre vypocet podielu  dvoch cisel stlac 3: \n");
  printf("Pre vypocet nasobku dvoch cisel stlac 4: \n");
  printf("Pre vypocet suctu dvoch n-romernych matic stlac 5: \n");
  scanf("%d",&volba);
  switch (volba)
 
  {
   case '1':
            printf("bola zadana volba 1\n");
            printf("zadaj a : \n");
            scanf("%d",&g);
            printf("zadaj b : \n");
            scanf("%d",&h);
            vysledok=sucet(g,h);
            printf("sucet je %d\n",vysledok);         
            break;


   case '2':
            printf("bola zadana volba 2\n");
            printf("zadaj a : \n");
            scanf("%d",&g);
            printf("zadaj b : \n");
            scanf("%d",&h);
            vysledok=rozdiel(g,h);
            printf("rozdiel je %d\n",vysledok);           
            break;

  case '3':
            printf("bola zadana volba 3\n");
            printf("zadaj a : \n");
            scanf("%d",&g);
            printf("zadaj b : \n");
            scanf("%d",&h);
            vysledok=podiel(g,h);
            printf("podiel je je %d\n",vysledok);
            break;

  case '4':
            printf("bola zadana volba 4\n");
            printf("zadaj a : \n");
            scanf("%d",&g);
            printf("zadaj b : \n");
            scanf("%d",&h);
            vysledok=sucin(g,h);
            printf("sucin je %d\n",vysledok);       
            break;
           

   
   case '5':
            printf("bola zadana volba 5\n");       
               
 printf("Zadaj pocet stlpcov matice\n");
 scanf("%d",&m);
 
 printf("Zadaj pocet riadkov matice\n");
 scanf("%d",&n);
 
  int D[m][n],E[m][n],F[m][n];
  nacitanieM(m,n,D);
  nacitanieM(m,n,E);
 
  printf("Matica A:\n");
  vypisM(m,n,D);
 
  printf("\n\n Matica B:\n");
  vypisM(m,n,E);
 
  sucetM(m,n,D,E,F);
  printf("\n\nSucet matic je :\n");
  vypisM(m,n,F);
 
 
   getch();   
  return 0;
}
 
 void nacitanieM(int x,int y,int A[x][y])
 {
 int i,j;
  for (i=0;i<x;i++)
  for (j=0;j<y;j++)

 A[i][j]=rand ()%100;
 }
 
void vypisM(int x,int y,int A[x][y])
 {
 int i,j;
for (i=0;i<x;i++)
{printf("\n");
  for (j=0;j<y;j++)

printf("%d\t",A[i][j]);
}}



 void sucetM (int x,int y,int A[x][y],int B[x][y],int C[x][y])
 {
 int i,j;
 for (i=0;i<x;i++)
  for (j=0;j<y;j++)
C[i][j]=A[i][j]+B[i][j]; }
break;
 default: printf("\n Zla volba."); break;
}}
       
.




Isto robim nejaku chybu ale fakt neviem kde, mal by som zacat ucit z nejakej literatury nie na z inyx programov.[/code]


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.04.08
Prihlásený: 15.05.15
Príspevky: 884
Témy: 3 | 3
NapísalOffline : 16.12.2008 21:35 | C - chyba v syntaxe

Kód:
#include <stdio.h>
#include <stdlib.h>


  int sucet(int g,int h)
{   int s;
    s=g+h;
    return s;};
int rozdiel(int g,int h)
{   int r;
    r=g-h;
    return r;};
int sucin(int g,int h)
{   int s;
    s=g*h;
    return s;};
   
float podiel(float g,float h)
{   
    float p;
    p=g/h;
    return p;
};
     
int main(int argc, char *argv[])

{   int vysledok;
    int g,h;     
    int volba;
    int a,m,n;
   
  printf("Pre vypocet suctu dvoch cisel stlac 1 : \n");
  printf("Pre vypocet rozdielu dvoch cisel stlac 2 : \n");
  printf("Pre vypocet podielu  dvoch cisel stlac 3: \n");
  printf("Pre vypocet nasobku dvoch cisel stlac 4: \n");
  printf("Pre vypocet suctu dvoch n-romernych matic stlac 5: \n");
  scanf("%d",&volba);
  switch (volba)
 
  {
   case '1':
            printf("bola zadana volba 1\n");
            printf("zadaj a : \n");
            scanf("%d",&g);
            printf("zadaj b : \n");
            scanf("%d",&h);
            vysledok=sucet(g,h);
            printf("sucet je %d\n",vysledok);         
            break;


   case '2':
            printf("bola zadana volba 2\n");
            printf("zadaj a : \n");
            scanf("%d",&g);
            printf("zadaj b : \n");
            scanf("%d",&h);
            vysledok=rozdiel(g,h);
            printf("rozdiel je %d\n",vysledok);           
            break;

  case '3':
            printf("bola zadana volba 3\n");
            printf("zadaj a : \n");
            scanf("%d",&g);
            printf("zadaj b : \n");
            scanf("%d",&h);
            vysledok=podiel(g,h);
            printf("podiel je je %d\n",vysledok);
            break;

  case '4':
            printf("bola zadana volba 4\n");
            printf("zadaj a : \n");
            scanf("%d",&g);
            printf("zadaj b : \n");
            scanf("%d",&h);
            vysledok=sucin(g,h);
            printf("sucin je %d\n",vysledok);       
            break;
           

   
   case '5':
            printf("bola zadana volba 5\n");
    default: printf("\n Zla volba."); break;
 }       
               
 printf("Zadaj pocet stlpcov matice\n");
 scanf("%d",&m);
 
 printf("Zadaj pocet riadkov matice\n");
 scanf("%d",&n);
 
 int D[m][n],E[m][n],F[m][n];
 nacitanie(m,n,D);
 nacitanieM(m,n,E);
 
 printf("Matica A:\n");
 vypisM(m,n,D);
 
 printf("\n\n Matica B:\n");
 vypisM(m,n,E);
 
 sucetM(m,n,D,E,F);
 printf("\n\nSucet matic je :\n");
 vypisM(m,n,F);
 
 
 getch();   
 return 0;
}
 
 void nacitanieM(int x,int y,int A[x][y])
 {
 int i,j;
  for (i=0;i<x;i++)
  for (j=0;j<y;j++)

 A[i][j]=rand ()%100;
 }
 
void vypisM(int x,int y,int A[x][y])
 {
 int i,j;
for (i=0;i<x;i++)
{printf("\n");
  for (j=0;j<y;j++)

printf("%d\t",A[i][j]);
}}



void sucetM (int x,int y,int A[x][y],int B[x][y],int C[x][y])
{
 int i,j;
 for (i=0;i<x;i++)
 for (j=0;j<y;j++)
 C[i][j]=A[i][j]+B[i][j];
}



Tu by mal byt fixnuty ten koniec, su tam vsak este chyby - v deklaraciach premennych a definiciach funckii, ale je tazke zorientovat sa v takom kode. Napr. taketo nieco v C nie je
void sucetM (int x,int y,int A[x][y],int B[x][y],int C[x][y]), daj tam skor
void sucetM (int x,int y,int **A,int **B,int **C)
Takychto chyb tam mas plno, takze Ti ich opravovat nebudem, skus si to popozerat. Pohladaj aj nejaku literaturu (napr. Pavel Herout - Ucebnica jazyka C) a uc sa z toho, potom lahko predides takymto chybam. ;)


Offline

Užívateľ
Užívateľ
C -  chyba v syntaxe

Registrovaný: 19.09.06
Prihlásený: 21.04.24
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 16.12.2008 21:58 | C - chyba v syntaxe

gnk píše:
mal by som zacat ucit z nejakej literatury nie na z inyx programov



to je pravda
A pre tvoje dobro ti odporucam skusit najprv opravit neutronmindov kod a najst si nejaky system (odsadenie a tak, ved to sa neda citat).
a kazdopadne ta deklaracie
void nacitanieM(int x,int y,int A[x][y]); mi gcc nezerie, lebo este nepozna v A[x][y], x a y
a takisto je zla deklaracia pola int M[a][b], lebo v case prekladu musis poznat hodnoty a a b, mozu tam byt hodnoty alebo konstanty. ty si chcel asi dynamicke pole. ale takto nejak by to malo byt funkcne:
Kód:
#include <stdio.h>
#include <stdlib.h>

int main()
{
int volba;
int n;
float a,m,b;

printf("Pre vypocet suctu dvoch cisel stlac 1 : \n");
printf("Pre vypocet rozdielu dvoch cisel stlac 2 : \n");
printf("Pre vypocet nasobku dvoch cisel stlac 3: \n");
printf("Pre vypocet podielu dvoch cisel stlac 4: \n");
printf("Pre vypocet suctu dvoch n-romernych matic stlac 5: \n");
scanf("%d",&volba);
switch (volba)

{
case 1:
printf("bola zadana volba 1\n");
scanf("%f%f",&a,&b);
printf("%.2f + %.2f = %.2f\n",a,b,a+b);
break;


case 2:
printf("bola zadana volba 2\n");
scanf("%f%f",&a,&b);
printf("%.2f - %.2f = %.2f\n",a,b,a-b);
break;

case 3:
printf("bola zadana volba 3\n");
scanf("%f%f",&a,&b);
printf("%.2f * %.2f = %.2f\n",a,b,a*b);
break;

case 4:
printf("bola zadana volba 4\n");
scanf("%f%f",&a,&b);
printf("%.2f / %.2f = %.2f\n",a,b,a/b);
break;



case 5:
printf("bola zadana volba 5\n");
getchar();
printf("Zadaj rozmer matice\n");
scanf("%d",&n);
n--;
float *m1,*m2;
m1=(float *)malloc(sizeof(float)*n*n);
m2=(float *)malloc(sizeof(float)*n*n);

int i,j;
for(i=0;i<=n;i++) {
for(j=0;j<=n;j++) {
scanf("%f",(m1+sizeof(int)*i+sizeof(int)*j));
}
}
for(i=0;i<=n;i++) {
for(j=0;j<=n;j++) {
scanf("%f",(m2+sizeof(int)*i+sizeof(int)*j));
}
}
printf("Matica A:\n");
for(i=0;i<=n;i++) {
putchar('\n');
for(j=0;j<=n;j++) {
printf("%.2f ",*(m1+sizeof(int)*i+sizeof(int)*j)); //*(m1+sizeof(int)*i+sizeof(int)*j));
}
}
printf("\n\n Matica B:\n");
for(i=0;i<=n;i++) {
putchar('\n');
for(j=0;j<=n;j++) {
printf("%.2f ",*(m2+sizeof(int)*i+sizeof(int)*j)); //*(m1+sizeof(int)*i+sizeof(int)*j));
}
}
printf("\n\nSucet matic je :\n");

for(i=0;i<=n;i++) {
putchar('\n');
for(j=0;j<=n;j++) {
printf("%.2f ",*(m1+sizeof(int)*i+sizeof(int)*j)+*(m2+sizeof(int)*i+sizeof(int)*j)); //*(m1+sizeof(int)*i+sizeof(int)*j));
}
}
return 0;
}
}


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 07.11.06
Prihlásený: 16.12.08
Príspevky: 10
Témy: 3 | 3
Napísal autor témyOffline : 16.12.2008 23:12 | C - chyba v syntaxe

Dakujem za pomoc a snahu, stopa27 tvoja verzia je na mna este moc zlozita, ale najvacsi problem je ze mi nefunguje. Mozno to moze byt sposobene tym ze pouzivam Dev C++, vypise mi iba moznosti a potom "bola zadana volba x" .
Viacery ste pisali ze mam nieco zle v casti operacii s polom, ale ked som dal prec switch a sucet,rozdiel, tak mi program ide, cize chyba bude v tom switchy. Radsej by som spojazdil moju aj ked "skaredu" verziu ako tu lepsiu od stopy27 ktorej rozumiem na 50% :-)
Kód:
#include <stdio.h>
#include <stdlib.h>

  void nacitanieM(int x,int y,int A[x][y]);
  void vypisM(int x,int y,int A[x][y]);
  void sucetM (int x,int y,int A[x][y],int B[x][y],int C[x][y]);
 
int main()
{
    int m,n;
 printf("Zadaj pocet stlpcov\n");
 scanf("%d",&m);
 
 printf("Zadaj pocet riadkov\n");
 scanf("%d",&n);
 
  int D[m][n],E[m][n],F[m][n];
  nacitanieM(m,n,D);
  nacitanieM(m,n,E);
 
  printf("Matica A:\n");
  vypisM(m,n,D);
 
  printf("\n\nMatica B:\n");
  vypisM(m,n,E);
 
  sucetM(m,n,D,E,F);
  printf("\n\nSucet matic je :\n");
  vypisM(m,n,F);
 
 
   system("PAUSE");   
  return 0;
}
 
 void nacitanieM(int x,int y,int A[x][y])
 {
 int i,j;
  for (i=0;i<x;i++)
  for (j=0;j<y;j++)

 A[i][j]=rand ()%100;
 }
 
void vypisM(int x,int y,int A[x][y])
 {int i,j;
for (i=0;i<x;i++)
{printf("\n");
  for (j=0;j<y;j++)

printf("%d\t",A[i][j]);
}}


 void sucetM (int x,int y,int A[x][y],int B[x][y],int C[x][y])
 {
 int i,j;
  for (i=0;i<x;i++)
  for (j=0;j<y;j++)
C[i][j]=A[i][j]+B[i][j];
}
getch();
[/code]


Offline

Užívateľ
Užívateľ
C -  chyba v syntaxe

Registrovaný: 19.09.06
Prihlásený: 21.04.24
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 16.12.2008 23:24 | C - chyba v syntaxe

int D[m][n],E[m][n],F[m][n]; : ale toto je sice syntakticky spravne, ale neni to spravne, cize tak ci tak to musis riesit cez dynamicke pole, ak nechces alokovat obrovsku maticu. A to moje ti to ma vypisat iba to "bola zadana volba x" a potom ocakava uz iba tvoj vstup. (dve cisla v pripade prvych 4 volieb a n*n*2 cisel v 5.pripade


Offline

Užívateľ
Užívateľ
C -  chyba v syntaxe

Registrovaný: 23.11.08
Príspevky: 187
Témy: 34 | 34
Bydlisko: IP: 209.85....
NapísalOffline : 17.12.2008 1:39 | C - chyba v syntaxe

vsak to funguje
Kód:
#include <stdio.h>
#include <stdlib.h>

void nacitanieM(int x,int y,int A[x][y]);

void vypisM(int x,int y,int A[x][y]);

void sucetM (int x,int y,int A[x][y],int B[x][y],int C[x][y]);
 
int main() {
   
  int m,n;
 
  printf("Zadaj pocet stlpcov\n");
  scanf("%d",&m);
 
  printf("Zadaj pocet riadkov\n");
  scanf("%d",&n);
 
  int D[m][n],E[m][n],F[m][n];
  nacitanieM(m,n,D);
  nacitanieM(m,n,E);
 
  printf("Matica A:\n");
  vypisM(m,n,D);
 
  printf("\n\nMatica B:\n");
  vypisM(m,n,E);
 
  sucetM(m,n,D,E,F);
  printf("\n\nSucet matic je:\n");
  vypisM(m,n,F);
 
 
  /*system("PAUSE");*/
  getch();   
  return 0;
}
 
void nacitanieM(int x,int y,int A[x][y]) {
  int i,j;
 
  for (i=0;i<x;i++) {
    for (j=0;j<y;j++)
      A[i][j]=rand ()%100;
  }
 }
 
void vypisM(int x,int y,int A[x][y]) {
  int i,j;

  for (i=0;i<x;i++) {
    for (j=0;j<y;j++)
      printf("%d ",A[i][j]);
    printf("\n");
  }
}


void sucetM (int x,int y,int A[x][y],int B[x][y],int C[x][y]) {
  int i,j;
 
  for (i=0;i<x;i++) {
    for (j=0;j<y;j++)
      C[i][j]=A[i][j]+B[i][j];
  }
}



Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.04.08
Prihlásený: 15.05.15
Príspevky: 884
Témy: 3 | 3
NapísalOffline : 17.12.2008 17:51 | C - chyba v syntaxe

Nefunguje, ta pamat proste musi byt alokovana dynamicky, ako tu uz bolo spomenute.
gnk píše:
Radsej by som spojazdil moju aj ked "skaredu" verziu ako tu lepsiu od stopy27 ktorej rozumiem na 50% :-)

Tak pracuj s dynamickymi poliami.

A stopova by mala fungovat korektne, skus si len pred poslednu zatvorku pridat system("pause"), alebo getch() z conio.h (ano, pred poslednu zatvorku, nie pred return 0, lebo to nie je uplne na konci, ale v bloku toho posledneho casu - mala chybicka sa vloudila). ;)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 07.11.06
Prihlásený: 16.12.08
Príspevky: 10
Témy: 3 | 3
Napísal autor témyOffline : 17.12.2008 19:57 | C - chyba v syntaxe

jo ta stopova verrzia funguje pridal som tam ten getch a vypisy, ale netusim preco mi to niekedy pri tej matici vypise sucet iba prveho riadku... :roll:


 [ Príspevkov: 19 ] 


C - chyba v syntaxe



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

zvyraznovanie syntaxe z pspadu do dreamweaveru

v Ostatné

1

444

17.11.2009 18:49

pilná lama glama

V tomto fóre nie sú ďalšie neprečítané témy.

Častá chyba načítania stránky (...dočasná chyba DNS).

v Poskytovatelia internetu

14

1332

29.05.2019 11:48

Jaro_N

V tomto fóre nie sú ďalšie neprečítané témy.

Chyba 101 (net::ERR_CONNECTION_RESET): Neznáma chyba.

v Sieťové a internetové programy

0

2815

26.02.2011 11:36

000kiko000

V tomto fóre nie sú ďalšie neprečítané témy.

chyba

v Správy pre vedenie fóra

8

1258

24.07.2008 7:54

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

chyba ?

v PHP, ASP

1

690

07.05.2009 22:10

lio

V tomto fóre nie sú ďalšie neprečítané témy.

chyba

v Operačné systémy Microsoft

2

726

21.07.2008 22:34

Kosak

V tomto fóre nie sú ďalšie neprečítané témy.

chyba

v PHP, ASP

2

972

25.02.2008 20:05

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

Chyba?

v Redakčné systémy

3

1215

24.05.2006 22:18

raven

V tomto fóre nie sú ďalšie neprečítané témy.

Chyba?

v Správy pre vedenie fóra

2

1188

28.05.2008 19:38

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

chyba

v Operačné systémy Microsoft

2

652

26.02.2008 19:00

zilooo

V tomto fóre nie sú ďalšie neprečítané témy.

chyba

v Operačné systémy Microsoft

2

603

15.05.2008 14:55

shiro

V tomto fóre nie sú ďalšie neprečítané témy.

Chyba?

v Pevné disky a radiče

2

784

16.02.2008 12:14

Iqwak

V tomto fóre nie sú ďalšie neprečítané témy.

chyba

v PHP, ASP

17

1101

18.09.2008 6:55

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

Chyba

v Ostatné

2

726

26.04.2009 8:04

Caliente

V tomto fóre nie sú ďalšie neprečítané témy.

Chyba

v PHP, ASP

3

646

02.07.2008 18:25

arno

V tomto fóre nie sú ďalšie neprečítané témy.

CHYBA

v Operačné systémy Microsoft

7

853

16.03.2007 17:49

quatermain



© 2005 - 2024 PCforum, edited by JanoF