Avatar
Andrej Legát:

Pomohol by mi niekto s programom?

Napíšte program, kde na začiatku zadáte číslo od 10 do 15 z klávesnice, ktoré predstavuje počet zákazníkov, ktorí v jeden deň nakupovali. Za tým sa vygeneruje príslušný počet súm od 1 do 100, ktoré zaplatili za nákupy. Tieto údaje uložte do súboru vstup.txt. Do súboru vystup.txt uložte priemernú sumu.

 
Odpovědět 7.6.2015 10:30
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Andrej Legát
David Čápka:

A s čím konkrétně potřebuješ pomoct?

Nahoru Odpovědět 7.6.2015 10:38
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Andrej Legát:

konkretne ako to zapisat aby mi generovalo iba tolko cislic kolko zadam na zaciatku a za 2. ako urobit tu priemernu sumu

 
Nahoru Odpovědět 7.6.2015 11:05
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Andrej Legát
David Čápka:

Pošli sem kód co máš a podíváme se na to.

Nahoru Odpovědět 7.6.2015 11:11
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Andrej Legát:

#include <stdio.h>
#include <stdlib.h>
#include<time.h>

main(){
int i,a,x;
FILE *f;
srand(time(0));
printf("Zadajte pocet zakaznikov od 10-15:\n");
scanf("%d",a);

f=fopen("vstup­.txt","w");
for (i=10; i<=15; i++){
x=rand()%100;

fprintf(f,"%d",x);

if(i%1==0)
fprintf(f," ");

}
fclose(f);

getchar();
getchar();
}

 
Nahoru Odpovědět 7.6.2015 11:28
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Andrej Legát
David Čápka:

Místo:

for (i=10; i<=15; i++){

vložíš

for (i=1; i<=a; i++){

Protože v proměnné a máš počet zákazníků. Cyklus ti napočítá od 1 do tohoto čísla, proběhne tedy a-krát.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 7.6.2015 11:33
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Andrej Legát:

A možem sa ešte opýtať keď mám v inom príklade napísať do súboru vstup niekoľko znakov ako urobím aby do súboru výstup zapísalo iba každý druhý znak program už mám ale zapisuje mi každý jeden znak

 
Nahoru Odpovědět 7.6.2015 11:51
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Andrej Legát
David Čápka:

Je více způsobů. Každopádně projedeš cyklem to pole charů a zapíšeš jen každý druhý znak. Můžeš se ptát jestli je i dělitelné dvěma (i % 2 == 0) nebo udělat cyklus 2x kratší a násobit indexy dvojkou.

Nahoru Odpovědět 7.6.2015 12:01
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Andrej Legát:

zmenil som ten for ale zadam napr 12 cisel a nenapise mi ich 12 ale asi 150 cisel

 
Nahoru Odpovědět 7.6.2015 13:25
Avatar
Jakub Horák
Člen
Avatar
Jakub Horák:

Jednoduše v tom cyklu prostě budeš přičítat 2 místo 1. :)

Pokud jsi tam předtím měl

for (i = 0; i < x; i++)

Tak tam dáš

for (i = 0; i < x; i+=2)
Editováno 7.6.2015 14:38
 
Nahoru Odpovědět 7.6.2015 14:36
Avatar
Odpovídá na Andrej Legát
Libor Šimo (libcosenior):
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
    int i, a, x, pom = 0;
    FILE *vstup, *vystup;
    srand(time(0));
    printf("Zadajte pocet zakaznikov od 10-15:\n");
    //scanf("%d",a); //chyba
    scanf("%d", &a);
    if ((vstup = fopen("vstup.txt", "w")) == NULL)
        return 1;
    for (i = 0; i < a; i++){
        //x = rand()%100; // chyba - generuje 0 - 99
        x = rand()%100 + 1; // 1 - 100
        pom += x;
        fprintf(vstup, "%d ", x);
    }
    fprintf(vstup, "\n");
    fclose(vstup);
    if ((vystup = fopen("vystup.txt", "w")) == NULL)
        return 1;
    fprintf(vystup, "%.2f\n", (float)pom / a);
    fclose(vystup);

    return 0;
}
Nahoru Odpovědět  +1 8.6.2015 9:32
Aj tisícmíľová cesta musí začať jednoduchým krokom.
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 11 zpráv z 11.