Výsledky 1 až 5 z 5

Téma: Ahoj potřebuji pomoct s C (algoritmus+testovací tabulka)

  1. #1

    Standardní Ahoj potřebuji pomoct s C (algoritmus+testovací tabulka)

    Ahoj lidi!
    Potřeboval bych udělat k tomuhle programu v cečku algoritmus(vyvojový diagram) a testovací tabulku. Pro ty co programujou to bude asi brnkačka,ale pro mě to je brutus!Potřeboval bych to udělat co nejdřív!
    dík!

    Kód:
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    #include<ctype.h>
    
    void zadejMatici&#40;int matice&#91;20&#93;&#91;20&#93;,int*R,int*S&#41;;
    int ctiCislo&#40;int N&#41;;
    
    int main&#40;&#41;
    &#123;
       int matice&#91;20&#93;&#91;20&#93;,R,S,sloupce&#91;20&#93;,pocet=0;
       for &#40;int r=0;r<20;r++&#41;
       for &#40;int s=0;s<20;s++&#41; matice&#91;r&#93;&#91;s&#93;= -35000;
            
        printf &#40;"Zjistime ktere sloupce obsahuji stejna cisla.\n"&#41;;
    
        zadejMatici&#40;matice,&R,&S&#41;;
            
        for &#40;int s=1,test,j=0;s<S;s++&#41;
        &#123;    
            for &#40;int z=0;z<R;z++&#41;
            &#123;   
                test=0;
                for &#40;int r=0;r<R;r++&#41;
                if &#40;matice&#91;z&#93;&#91;0&#93;== matice&#91;r&#93;&#91;s&#93;&#41; &#123;test=1; break;&#125;
                if &#40;test==0&#41; break;
            &#125;
            if &#40;test==1&#41; &#123;sloupce&#91;j&#93;=s; j++; pocet++;&#125;
        &#125;
    
        printf&#40;"\nShodne s prvnim sloupcem jsou sloupce&#58;"&#41;;
        if &#40;pocet&#41;
        for &#40;int i=0;i<pocet;i++&#41; printf&#40;" %d",sloupce&#91;i&#93;+1&#41;;
        else printf&#40;" nejsou"&#41;;
        printf&#40;"\n\n"&#41;;
        system&#40;"PAUSE"&#41;;
        return 0;
    &#125;
    void zadejMatici&#40;int matice&#91;20&#93;&#91;20&#93;,int*R,int*S&#41;
    &#123;
            do
            &#123;
            printf &#40;"\nZadejte pocet radku&#58; "&#41;; *R=ctiCislo&#40;5&#41;;
            printf &#40;"Zadejte pocet sloupcu&#58; "&#41;;*S=ctiCislo&#40;5&#41;;
            if &#40;*R==-35000 || *S==-35000&#41;
            &#123;printf&#40;"nChyba! Lze zadavat pouze čísla.\n\n"&#41;; continue;&#125;
            break;
            &#125; while&#40;1&#41;;
            
            printf&#40;"\n"&#41;;
            for &#40;int r=0;r<*R;r++&#41;
                for &#40;int s=0;s<*S;s++&#41;
                &#123;
                   printf&#40;"Zadejte prvek na %d radku a %d sloupci&#58; ",r+1,s+1&#41;;
                   matice&#91;r&#93;&#91;s&#93;= ctiCislo&#40;5&#41;;
                &#125;
    &#125;
    int ctiCislo&#40;int N&#41;
    &#123;
            int cislo=0;
            char c&#91;N&#93;;
            double z=0;
            for &#40;int j=0;j<N;j++&#41; c&#91;j&#93;='\0';
            
            scanf &#40;"%s",&c&#41;;
              for &#40;int j=N-1;j>=0;j--&#41;
              &#123;
                if &#40;isdigit&#40;c&#91;j&#93;&#41;&#41; &#123;cislo += &#40;c&#91;j&#93;-48&#41;*&#40;int&#41;pow&#40;10,z&#41;; z++; &#125;
                else if &#40;c&#91;0&#93;!='-'&& c&#91;j&#93;!='\0'&#41; return -35000;
              &#125;
              
              return cislo;
    &#125;

    jestli to někomu pomůže tak tady je zadání co to má dělat

    Je dána matice (tj. dvourozměrné pole) kladných celých čísel velikosti N*N, N<20. Čísla tvořící matici jsou zadána po řádcích. Zjistěte, v kolika sloupcích matice jsou obsažena přesně stejná čísla, jako v prvním sloupci (nezáleží na pořadí čísel).

    edit by Rainbow: code tag

  2. #2

    Standardní

    ten kod ani nemas spravne tak neni potreba resit vyvojak
    teda pokud podle toho vyvojaku nehledas kde mas chybu a to by sis ho pak mel udelat sam
    Hrrrr, will you stop using people as human driven search engines? Google.com has all the answers you need.

  3. #3

    Standardní

    Kód:
    1-24@&#91;root@fox.murder.cz&#58;~&#93;# ./rs
    Zjistime ktere sloupce obsahuji stejna cisla.
    
    Zadejte pocet radku&#58; 3
    Zadejte pocet sloupcu&#58; 3
    
    Zadejte prvek na 1 radku a 1 sloupci&#58; 1
    Zadejte prvek na 1 radku a 2 sloupci&#58; 2
    Zadejte prvek na 1 radku a 3 sloupci&#58; 3
    Zadejte prvek na 2 radku a 1 sloupci&#58; 1
    Zadejte prvek na 2 radku a 2 sloupci&#58; 1
    Zadejte prvek na 2 radku a 3 sloupci&#58; 1
    Zadejte prvek na 3 radku a 1 sloupci&#58; 1
    Zadejte prvek na 3 radku a 2 sloupci&#58; 1
    Zadejte prvek na 3 radku a 3 sloupci&#58; 1
    
    Shodne s prvnim sloupcem jsou sloupce&#58; 2 3
    
    PAUSE&#58; not found
    0-25@&#91;root@fox.murder.cz&#58;~&#93;#
    Tohle jsem tam zadal:
    Kód:
    1 2 3
    1 1 1
    1 1 1
    a nechtej mi tvrdit ze sloubce 2 i 3 obsahujou stejny cisla
    Hrrrr, will you stop using people as human driven search engines? Google.com has all the answers you need.

  4. #4

    Standardní

    No je tam chybka Navic takto udelany algoritmus neodhali rozdil mezi sloupcem 1 1 2 2 a 1 1 1 2 protoze se spokoji s prvnim vyskytem a neresi pocty cislic coz myslim neodpovida zadani. Ja bych to realizoval setridenim sloupcu a naslednym porovnanim odpovidajicich prvku.

    Navic fce ctiCislo(int) moc elegantne vyresena neni...
    Je tam buffer overflow a take ten prevod retezce na cislo je pritazeny za vlasy. Neni lepsi brat ten retezec z druheho konce a pak

    Kód:
    cislo = cislo*10 + c&#91;j&#93; - '0';
    a zbavit se tak mocnicn? Nehlede na existenci funkce strtol

    Rovnez navrat chyby pomoci magickeho cisla -35000 neni moc stastny. Kdyz uz tak aspon nejaka #definovana hodnota.

  5. #5

    Standardní

    Tak tohle mě fakt nenapadlo, ja jsem to někde opsal, protože jsem něvěděl co stím,tak jestli to víte tak mi prosím pozte!

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •