Delitelnost 7,9,13 – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Delitelnost 7,9,13 – C / C++ – Fórum – Programujte.comDelitelnost 7,9,13 – C / C++ – Fórum – Programujte.com

 

ros
~ Anonymní uživatel
9 příspěvků
28. 10. 2014   #1
-
0
-

Dobrý den, 

snažím se udělat program. Vypiš čísla z pole od 0-1000 dělitelná 7nebo9nebo13.  Jak udělam , aby si uživatel mohl vybrat kterym chce dělit a vypsaly se mu jen ty čísla dělitelná tím jedním číslem. Posílám svuj zdrojak

#include <stdio.h>

int main(void)
{

    int i,j,k;
    int cislo;

    printf("Zadej i pro delitelna 7, j pro delitelna 9, k pro delitelna 13\n");
    scanf("%d");

    {
    for(i = 0; i <=1000; i++)
    if(i % 7 == 0 )
    printf("%d\n", i);
    }
    {


    for(j = 0; j <=1000; j++)
    if(j % 9 == 0 )
    printf("%d\n", j);
    }
    {

    for(k = 0; k <=1000; k++)
    if(k % 13 == 0 )
    printf("%d\n", k);
    }
}

Nahlásit jako SPAM
IP: 195.113.174.–
28. 10. 2014   #2
-
0
-

Uživatelsky srozumitelnější by bylo použít " zadej 7 pro dělitelná 7 " atd. A požít to přímo jako dělitele při ověřování. Každopádně to jde udělat jedním cyklem. Pokud trváš na volbách písmenkem bude vhodnější switch.

Zkusil jsi to zkompilovat? Myslím, že ne. Nejméně jednu syntaktickou chybu bych našel.

hu

Nahlásit jako SPAM
IP: 193.86.81.–
Kit+15
Guru
28. 10. 2014   #3
-
0
-

#1 ros
 Šetříme cykly...

#include <stdio.h>

int main(void) {
    int i, j, k;
    int cislo;

    for (i = 0; i <= 1000; i += 7)
        printf("%d\n", i);
    for (j = 0; j <= 1000; j += 9)
        printf("%d\n", j);
    for (k = 0; k <= 1000; k += 13)
        printf("%d\n", k);
}
Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
ros
~ Anonymní uživatel
9 příspěvků
28. 10. 2014   #4
-
0
-

#2 hlucheucho
Zkoušel, vypíše mě to 7,9,13 hned pod sebe.  Nevím si rady jak to rozdělit aby to vypsalo po zadání 7 nebo i... dělitelná 7 atd

Nahlásit jako SPAM
IP: 195.113.174.–
ros
~ Anonymní uživatel
9 příspěvků
28. 10. 2014   #5
-
0
-

#3 Kit
K tomuhle jsem se ještě dostal, teď nevím pomocí čeho mám vypsat po zadání i dělelná 7, po zadání j dělitelná 9, po zadání k dělitelná 13.

Nahlásit jako SPAM
IP: 195.113.174.–
Kit+15
Guru
28. 10. 2014   #6
-
0
-

#5 ros

Udělal bych to úplně jednoduše, vykašlal bych se v zadání na čísla 7, 9, 13. Nebo snad ta řada má tím zadaným číslem začínat? 

#include <stdio.h>

int main(void) {

    int i;
    int cislo;

    printf("Zadej i pro delitelna 7, j pro delitelna 9, k pro delitelna 13\n");
    scanf("%d", &cislo);
    for (i = 0; i <= 1000; i += cislo)
        printf("%d\n", i);
}
Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
28. 10. 2014   #7
-
0
-

1. z klávesnice načtu číslo, kterým budu zkoumat dělitelnost (7, 9 nebo 13. v podstatě to může být jakékoliv číslo)
2. cyklem projdu celou řadu čísel, jejichž dělitelnost zkoumám. Čísla kde je zbytek po dělení zadaným číslem roven nule, přímo uvnitř cyklu vypíšu.

hu

Nahlásit jako SPAM
IP: 193.86.81.–
28. 10. 2014   #8
-
0
-

#6 Kit
až příjde s "určete dělitelnost čísel v zadaném intervalu od .. do .., interval zadejte z klávesnice" bude namydlenej.

Ony se ty školní úlohy sobě dost podobají a dobře navržený algoritmus dovede vyřešit celou skupinu úloh. 

hu

Nahlásit jako SPAM
IP: 193.86.81.–
Kit+15
Guru
28. 10. 2014   #9
-
0
-

#8 hlucheucho

Možná, že bude namydlenej, ale dá se to řešit stejným způsobem. 

#include <stdio.h>

int main(void) {
    int i;
    int cislo;
    int delitel;

    delitel = 7;
    printf("Zadej i pro delitelna %d\n", delitel);
    scanf("%d", &cislo);
    for (i = cislo - 1 - (cislo - 1)%delitel + delitel; i <= 1000; i += delitel)
        printf("%d\n", i);
}
Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
ros
~ Anonymní uživatel
9 příspěvků
28. 10. 2014   #10
-
0
-

:D vám se to říká , já programuju tak druhej týden. A na dost věcí už jsem přišel sám, své pomoci. Umím vypsat čísla dělitelná čímkoliv v jakémkoliv intervalu, ale bohužel nevím jak zadat příkaz , aby se mě vypsali pouze dělitelná 7 po zadání že chcu dělitelná 7.... atd.  To pole projdu 1000ckrát, zastavím se u nuly a vypíšu čísla dělitelná 7. Ale o to mě nejde.

Nahlásit jako SPAM
IP: 195.113.174.–
28. 10. 2014   #11
-
0
-

algoritmus jsem ti napsal. stačí přepsat do kódu

hu

Nahlásit jako SPAM
IP: 193.86.81.–
28. 10. 2014   #12
-
0
-

   

int zac, kon; //interval cisel jejichz delitelnost zkoumas
int del;    //sem das cislo kterym maji byt cisla delitelna, napr. 7
int i;

for (i = zac; i <= kon; i++)
{
  if ((i % del) == 0) {
     printf("%d\n", i);
  } 
}

hu

Nahlásit jako SPAM
IP: 193.86.81.–
ros
~ Anonymní uživatel
9 příspěvků
28. 10. 2014   #13
-
0
-

#12 hlucheucho
jak mám zapsat interval, abych nemusel vypisovat všechna čísla která chcu zvlášť. Můj interval je od 0-1000

int []= {0-100}?

Nahlásit jako SPAM
IP: 195.113.174.–
ros
~ Anonymní uživatel
9 příspěvků
28. 10. 2014   #14
-
0
-

tohle mě stejně nepomůže při mém problému. Mě jde o to jak napsat Printf a Scanf tak aby se mě vypsali bud ty dělitelna 7, nebo 9, nebo 13.

Nahlásit jako SPAM
IP: 195.113.174.–
ros
~ Anonymní uživatel
9 příspěvků
28. 10. 2014   #15
-
0
-

#include <stdio.h>

int main(void)
{


int pole={0, 1000}; //interval cisel jejichz delitelnost zkoumas
int del=7;    //sem das cislo kterym maji byt cisla delitelna, napr. 7
int i;
int j;
int k;

printf ("Zadej i pro del 7,j pro del 9,k pro del 13\n");
scanf ("%d");

for (i = 0; i <= 1000; i++)
{
  if ((i % 7) == 0) {
     printf("%d\n", i);
  }
}

for (j = 0; j <= 1000; j++)
{
  if ((j % 9) == 0) {
     printf("%d\n", j);
  }
}

for (k = 0; k <= 1000; k++)
{
  if ((k % 13) == 0) {
     printf("%d\n", k);
  }
}
}

Nahlásit jako SPAM
IP: 195.113.174.–
ros
~ Anonymní uživatel
9 příspěvků
28. 10. 2014   #16
-
0
-

#include <stdio.h>

int main(void)
{
    int i, j, k;
    int cislo;

    printf("zadej cislo i,j,k\n");
    scanf("%d%d%d",&i,&j,&k);


    for (i = 0; i <= 1000; i += 7)
        printf("%d,", i);
        return 0;

    for (j = 0; j <= 1000; j += 9)
        printf("%d,", j);
        return 0;
    for (k = 0; k <= 1000; k += 13)
        printf("%d,", k);

}

kdyz zadam i vypíše to jen 7, to chcu, toje dobře

kdyz zadam j vypíše to už všechny aji 9,aj 13 to nechcu

Nahlásit jako SPAM
IP: 195.113.174.–
28. 10. 2014   #17
-
0
-

Proč furt tolik cyklů??

int del;    //sem das cislo kterym maji byt cisla delitelna, napr. 7
int i;

printf("Zadej ...\n");
scanf("%d", &del); //nacte cislo, napr 7

for (i = 0; i <= 1000; i++)
{
  if ((i % del) == 0) {
     printf("%d\n", i);
  } 

určí dělitelná čísla zadaným číslem

hu

Nahlásit jako SPAM
IP: 193.86.81.–
ros
~ Anonymní uživatel
9 příspěvků
28. 10. 2014   #18
-
0
-

#17 hlucheucho
Chcu tenhle program, tak proto tolik cyklů. Pro každé zvlášť.

Ale nevím jak udělat tenhle krok :

"Zadejte číslo: 7 pro dělitelná 7, 9 pro dělitelná 9 , 13 pro dělitelná 13"

zadám číslo např 9  ....enter

vypíše mě to čísla dělitelná 9 v intervalo 0-1000

Nahlásit jako SPAM
IP: 195.113.174.–
vitamin+8
Grafoman
28. 10. 2014   #19
-
0
-

Od standardu C99, co je 15 rokov stary standard jazyka C uz nie je potrebne deklarovat premenne na zaciatku bloku, takze mozes  pouzit cykly nasledovne:

for(int i = 0; i < 1000; ++i){/*...*/}
//...
for(int i = 0; i < 1000; ++i){/*...*/}
//...
for(int i = 0; i < 1000; ++i){/*...*/}

Vsetky cykly deklaruju premennu i a vzajomne sa neovplyvnuju.

hlucheucho ale spravne poukazal na to ze staci jeden cyklus, ak ho das do funkcie/makra tak ho mozes pouzit pre viacej premennych:

Nahlásit jako SPAM
IP: 95.105.186.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
28. 10. 2014   #20
-
0
-

A co dělá mnou napsaný kód? Nebo kód který napsal Kit?

int del;

printf("jakékoliv kecy\n"); //vypise jakoliv kecy
scanf("%d", &del);          //do del nacte cislo z klavesnice

a pak uvnitř jediného cyklu se vypíšou čísla dělitelná zadaným číslem

for (int i = 0; i <= 1000; i++)
{
  if ((i % del) == 0) {
     printf("%d\n", i);
  } 
}

hu

Nahlásit jako SPAM
IP: 193.86.81.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 52 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý