NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Z mainu do funkcie

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Matej
Člen
Avatar
Matej:28.10.2015 14:13

Zdravím :) mám problém s vložením kódu do funkcie :) prosím vás poradil by mi niekto akým spôsobom to mám vyriešiť keď výpis nechcem mať vo funkcií ale v maine :) ďakujem

#include <stdio.h>
#include <ctype.h>
#include <string.h>

int main(void)
{
        char str[101];
        char b[101];
        char *p;
        long j;
        int c =2;

                while (scanf("%100s", str) != EOF)
        {
                j = strtol(str,&p,10);
                if (*p == '\0')
                {


                                for (c=2;c<=(j-1);c++)
                                {

                                        if (j%c == 0){
                                                printf("Number: %ld\n",j);
                                                break;
                                        }
                                }
                                if (c==j)
                                        printf("Number: %d (prime)\n",j);
                }

                if (*p){
                strcpy(b,str);
                strrev(b);

                   if (strcmp(str,b) == 0)
                          printf("Word: %s (palindorm)\n",str);
                   else
                          printf("Word: %s\n",str);
                }

        }
    return 0;
}
Editováno 28.10.2015 14:14
 
Odpovědět
28.10.2015 14:13
Avatar
Jozef
Člen
Avatar
Jozef:28.10.2015 15:45

Sprav niečo podobné aj so zbytkom kódu:

#include <stdio.h>
#include <ctype.h>

char *funkcia(char *str)
{
     char *p;
     long j;
     j = strtol(str,&p,10);
                if (*p == '\0')
                {
                        return "Number:";
                }

                if (*p){
                       return "Word:";
                }
}

int main(void)
{
        char str[101];
        char *p;
        long j;

        while (scanf("%100s", str) != EOF)
            printf("%s %s",funkcia(str),str);
    return 0;
}
Editováno 28.10.2015 15:46
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
28.10.2015 15:45
I'm not afraid to die on a treadmill
Avatar
Odpovídá na Jozef
Libor Šimo (libcosenior):28.10.2015 18:04

Ja by som z toho spravil projekt.
funkcie.h; funkcie.c; main.c ;-)

Editováno 28.10.2015 18:05
Nahoru Odpovědět
28.10.2015 18:04
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Jozef
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
Jozef:28.10.2015 18:13

Určite, ale myslím, že takto je to jednoduchšie na pochopenie a použitie, takže preňho je lepšie nechať to takto.

Nahoru Odpovědět
28.10.2015 18:13
I'm not afraid to die on a treadmill
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na Libor Šimo (libcosenior)
David Novák:28.10.2015 19:53

Dělit to má smysl jen když máš těch fcí víc - tak > 200 řádků.. Jinak to podle mě přehlednost naopak snižuje ;)

Nahoru Odpovědět
28.10.2015 19:53
Chyba je mezi klávesnicí a židlí.
Avatar
Odpovídá na David Novák
Libor Šimo (libcosenior):28.10.2015 19:55

David, nejde o profesionalitu, ale o to, ze casom skoro kazdy prejde na objekty...;-)

Nahoru Odpovědět
28.10.2015 19:55
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na Libor Šimo (libcosenior)
David Novák:28.10.2015 20:03

Myslíš, že rozdělování fcí do modulů jim pak lépe pomůže pochopit OOP? Myslím, že je to přinejmenším diskutabilní.. A můžeš tím zbytečně zmást nováčka, který třeba nezná oddělený překlad a teorii za tím ;)

Nahoru Odpovědět
28.10.2015 20:03
Chyba je mezi klávesnicí a židlí.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.