| | |
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Autor | Správa |
---|
Registrovaný: 22.10.11 Prihlásený: 13.11.11 Príspevky: 3 Témy: 1 | Napísal PipoPP: 22.10.2011 21:28 | |
|
Caute Mam tu takéto zadanie :
Citácia: "Napíšte program, ktorý načíta jedno celé číslo N. Zistite, či je číslo N prvočíslo. Ak nie je, vypíšte jeho deliteľov, ich počet, súčet a najväčší z nich. Ošetrite aj chybné vstupy, t.j. ak zadáte desatinné číslo, preveďte ho na celé číslo, ak sa zadá znak, vypíšte chybové hlásenie a ukončite program."
Kedže som zaciatocnik tak este mi to moc nejde ale nieco som dal dokopy :
Kód: #include <stdio.h>
int main(void) { int a,i,max_d, d = 0, spolu_d = 0; char neni=0; printf("zadaj cele cislo\n"); if (1 == scanf( "%d", &a ) ) { printf("Zadali ste cislo %d\n", a); } else { printf("chybny vstup"); } for(i=a-1;i>=2;i--) { if(!(a % i)) { neni=1; break; } } if(neni) { printf("Vsetky delitele cisla su:"); for (i=1; i<=a; i++) { if (!(a % i)) { printf(" %i,", i); d++; spolu_d = spolu_d + i; max_d = i; } } printf("\n"); printf("Pocet delitelov cisla: %i\n", d); printf("Sucet delitelov cisla: %i\n", spolu_d); printf("Najvacsi z delitelov je: %i", max_d);
} else { printf("Toto cislo je prvocislo"); } return 0; }
Je v tom trošku bordel predpokladam , Keby sa na to niekto mohol pozrieť čo by sa tam dalo ešte upraviť bol by som rad. Ďakujem veľmi pekne
|
|
Registrovaný: 11.01.09 Prihlásený: 28.03.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 23.10.2011 13:19 | |
|
A co ti tam nejde? Ja som to skusal a vypisuje to aj prvocisla aj vsetky delitele cisla, ak to nie je prvocislo.
_________________ Ak potrebujete pomoc s diagnostikou/opravou vasej elektroniky ( notebook, motherboard, GPU, a ine ), kontaktujte ma cez SS. |
|
Registrovaný: 22.10.11 Prihlásený: 13.11.11 Príspevky: 3 Témy: 1 | Napísal autor témy PipoPP: 23.10.2011 13:28 | |
|
Ano skušal som si to a ide to si myslim ze dobre aspon podla toho zadania to robi to čo by malo. Len je to tak všeliak pohadzane neviem či to ma mať nejake poradie alebo tak. A ešte teraz som si uvedomil že tam nemam ošetrene to keď zadam desatine čislo aby to prehodilo na cele . Skusim sa ešte na toto pozrieť snaď na to pridem.
|
|
Registrovaný: 11.01.09 Prihlásený: 28.03.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 23.10.2011 13:39 | |
|
Tak rozhadzane to teda je kvalitne Tu to mas trocha lepsie osadene.
Kód: #include <stdio.h> #include <stdlib.h>
int main(void) {
int a, i, max_d, d = 0, spolu_d = 0; char neni = 0;
printf("zadaj cele cislo\n"); if ( scanf( "%d", &a ) == 1 ) {
printf("Zadali ste cislo %d\n", a); } else {
printf("chybny vstup"); exit(1); } for ( i = a-1; i >= 2; i-- ) {
if ( ( a % i ) == 0 ) { neni = 1; break; } }
if ( neni ) {
printf( "Vsetky delitele cisla su:" ); for ( i = 1; i <= ( a/2 ); i++ ) {
if ( ( a % i == 0 ) ) { printf(" %i,", i); d++; spolu_d += i; max_d = i; } } printf( "\n" ); printf( "Pocet delitelov cisla: %i\n", d ); printf( "Sucet delitelov cisla: %i\n", spolu_d ); printf( "Najvacsi z delitelov je: %i", max_d );
} else { printf( "Toto cislo je prvocislo\n" ); } return 0;
}
A ak zadam desatinne cislo, tak mne ho teda premeni na cele, zeby som mal magicky procesor?
|
|
Registrovaný: 22.10.11 Prihlásený: 13.11.11 Príspevky: 3 Témy: 1 | Napísal autor témy PipoPP: 23.10.2011 13:50 | |
|
Aha dobre ďakujem , zase som si zle cital zadania ja som si myslel že to mam spraviť tak, že keď dam napriklad 10,9 že to da na 11 ale vlastne nemam zaokruhlovať . Tak ďakujem ti za tu upravu budem podla toho upravovať aj ďalšie ta tvoja uprava je prehľadnejšia.
|
|
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|