C programozás

Kezdőlap Fórumok Programozás C programozás

10 bejegyzés megtekintése - 321-330 / 352
  • Szerző
    Bejegyzés
  • #2016416
    CyrSyS
    Felhasználó

      Kedves Zoli A mátrixos programomnál is nézd meg! Adj meg oszlopszámnak mondjuk „df” majd adj meg egy 1 és 4 közötti értéket. nem fogja elfogadni! 🙁

      #2016417
      CyrSyS
      Felhasználó

        Pontosítok! Tehát adj meg mondjuk 123-at! Nem fogja elfogadni! Majd adj meg mondjuk 2-t. Azt se 😀 Itt a mátrixos program:

        Code:
        #include
        #include
        #include
        #include
        #include
        #include

        int getline(char s[],int lim);
        int szambe(char text[], int min, int max);
        int egesze(char s[], int hossz);

        int main(void){

          static char vizsg[2];
          int i,j,vege,ok;
          double sor,oszl, szum, atlag, min, max;
          double matrix[10][10];

          clrscr();

          printf(„tttMatrix elemzo program!n”);
          for(i=0;i<=7;i++) printf("----------");     vege=0;     do{ /*Oszlop bekerese*/   ok=i=0;       do{     printf("nKerem adja meg a matrix oszlopainak szamat(1-4): ");     i=getline(vizsg,2);     if (i==0) printf("nNem adtal meg semmit az oszloperteknek!n");     else if (!egesze(vizsg,i)) printf("nA megadott ertek nem egesz szam vagy negativ ertek!n");     else     {       oszl=(double)atoi(vizsg);       if (oszl<1 || oszl>4) printf(„nA megadott erteknek 1 es 4 koze kell esnie!n”);
              else ok=1;
            }

              } while (!ok);

              if (!vege) {

                /*Sor bekerese*/

          ok=0;

                  do{

                    printf(„nKerem adja meg a matrix sorainak szamat(1-4): „);
            i=getline(vizsg,1);
            if (i==0) printf(„nA sorok sz m t mindenk‚pp megkell adni!n”);
            else if (!egesze(vizsg,i)) printf(„nA megadott ertek nem egesz szam vagy negativ ertek!n”);
            else
            {
              sor=(double)atoi(vizsg);
              if (sor<1.0 || sor>4.0) printf(„nA megadott erteknek 1 es 4 koze kell esnie!n”);
              else ok=1;
            }

                        } while (!ok);

                    }

              if (!vege) {

                /*Matrix feltoltese */

                  ok=0;

                  do{
              for (i=0; imax) max=matrix[i][oszl+1]=matrix[i][j];
              szum+=matrix[i][j];
                    }
          matrix[i][oszl+2]=szum/oszl;
                }

            for (j=0; jmax) max=matrix[sor+1][j]=matrix[i][j];
              szum+=matrix[i][j];
                    }
          matrix[sor+2][j]=szum/sor;
                }
                }
              vege=1;

              } while (!vege);

              /*kiiratas*/

              clrscr();

          printf(”        |”); for(i=1;i<=oszl;i++) printf("%8d",i); printf("    Min    Max  µtlagn");   printf("---------+"); for(i=1;i<=oszl+3;i++) printf("--------");   printf("n");   for(i=0;imax){
        printf(„A bekert adatnak a [%d-%d] intervallumba kell esnie!n”,min,max);
        printf(text);
        getline(sor, 10);
        szam=atoi(sor);
        }
        return(szam);
        }

        int egesze(char s[], int hossz){
        int i=0, kezd;
        while ((s[i]==’ ‘ || s[i]==’n’ || s[i]==’t’) && (i= hossz)
        return 0; /* hol vannak a szamjegyek? */
        kezd=i;
        while((s[i]>=’0′ && s[i]<='9') && (i= hossz)
        return 1; /* ez jo */
        if(i==kezd || s[i]!=’ ‘ && s[i]!=’t’ && s[i]!=’n’ && s [i]!=0) return 0;
        else return 1;
        }

        #2016418
        kisbetu
        Felhasználó

          Ez most Zoli házi feladata?

          #2016419
          zoltan22
          Felhasználó
            Code:
             
              double sor,oszl, szum, atlag, min, max;
              double matrix[10][10];

                   if (matrix[i][j]

            Kezd eszembe jutni, miert is utaltam a borland c-t.

            Code:
                else if (!egesze(vizsg,i)) printf(„nA megadott ertek nem egesz szam vagy negativ ertek!n”);
                else
                {
                  oszl=(double)atoi(vizsg);   // <<<< ez egy nagyon nem egeszseges dolog       if (oszl<1 || oszl>4)
                                     printf(„nA megadott erteknek 1 es 4 koze kell esnie!n”);

            Azert abbol, hogy mit ir ki a program, altalaban ki lehet talalni, hogy mi nem megy jol.

            #2016420
            pointux
            Felhasználó

              Na, itt egy getine függvény, ami mindenképpen lezárja a string végét (ami nem egy elhanyagolható szempont – ha tudja a program, hogy hol a vége :)). (Amúgy talán átláthatóbb is.)

              Code:
              void getline (char *str, int n) {
                  int i;                     

                  for (i = 0; i < n; i ++ ) {         str [i] = getchar ();          if (str [i] == 'n')              break;                }                              str [i] = ''; }

              #2016421
              pointux
              Felhasználó

                Na, ezt próbáld ki: :)))

                Code:
                #define BUF_LENGTH 512
                   
                void getnstr (char *str, int n) {
                    int i;                     

                    for (i = 0; i < n; i ++ ) {         str [i] = getchar ();          if (str [i] == 'n')              break;                }                              str [i] = ''; }                  int isdigitstr (char *str) {     int i;                                                  i = ((str [0] == '-') || (str [0] == '+')) ? 1:0;                                                         while (str [i] != '') {                                if (!isdigit (str [i]))                                  return 0;                                        i ++;                                            }                                                    return 1; }            int islimitstr (char *str, int min, int max) {     int num;                                      if (isdigitstr (str)) {         num = atoi (str);          if ((num >= min) && (num <= max))             return 1;     }     return 0; } void readx () {     char buf [BUF_LENGTH];     printf ("Adj meg egy számot 1-4-ig: ");     while (1) {         getnstr (buf, BUF_LENGTH);         if (islimitstr (buf, 1, 4))             break;         printf ("Mondom egy számot 1-4-ig: ");     }     printf ("nNa, végre sikerült megértened.n"); } int main () {     readx ();     return 0; }

                #2016422
                bandala
                Felhasználó

                  Sziasztok!
                  Most kezdtem el a programozással, és azon belül a C nyelvel foglalkozni! első program és máris hibát ír ki!

                  #include
                  int main()
                  {
                  printf(„nNem nehéz C nyelven programozni!n”);
                  getchar();
                  return 0;
                  }

                  fordítás: gcc fájlnév.c -o fájlnév
                  hibaüzenet: fájlnév.c:7:2: warning: no newline at end of file

                  Én nem látom a hibát!

                  #2016423
                  andrei28
                  Felhasználó

                    hibaüzenet: fájlnév.c:7:2: warning: no newline at end of file

                    irja: 7.sor. tegyél egy enter-t a sor végére
                    és forditsd ujra.

                    Code:
                    #include
                    int main()
                    {
                      printf(„nNem nehéz C nyelven programozni!n”);
                      return 0;
                    }
                    #2016424
                    kisbetu
                    Felhasználó
                      bandala wrote:
                      hibaüzenet: fájlnév.c:7:2: warning: no newline at end of file

                      Én nem látom a hibát!

                      A sorvégi CR karaktert általában nem látod.

                      #2016425
                      gabaman
                      Felhasználó
                        bandala wrote:
                        Sziasztok!
                        Most kezdtem el a programozással, és azon belül a C nyelvel foglalkozni! első program és máris hibát ír ki!

                        Hibás az a feltevés, hogy hibát (error) ír ki. Mindössze csak figyelmeztet (warning), hogy valami alapvető nem úgy van, ahogy kellene. Nagyon hasznos tud lenni, főleg ha kezdetben pl. ilyet írsz és nem érted mi nem jó:

                        Code:
                        if (var = 2)
                          printf („A ‘var’ értéke 2.n”);
                        bandala wrote:
                        int main()

                        Apróság, de ajánlatos a C szabványt (ISO/IEC 9899) mindig betartani. E szerint a main definíciója:

                        Code:
                        int main (int argc, char *argv[])
                        bandala wrote:
                        fordítás: gcc fájlnév.c -o fájlnév

                        Erősen ajánlott bekapcsolni a szószátyár módot, sok alapvető hibát megtalál a gcc, csak nem mindig írja ki:

                        gcc -Wall fájlnév.c -o fájlnév

                        bandala wrote:
                        hibaüzenet: fájlnév.c:7:2: warning: no newline at end of file

                        fájlnév.c:7:2: figyelem: nincs új sor a fájl végén

                      10 bejegyzés megtekintése - 321-330 / 352
                      • Be kell jelentkezni a hozzászóláshoz.