Diskuze: Program v C pomoc
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
konkretne ako to zapisat aby mi generovalo iba tolko cislic kolko zadam na zaciatku a za 2. ako urobit tu priemernu sumu
#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();
}
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.
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
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.
zmenil som ten for ale zadam napr 12 cisel a nenapise mi ich 12 ale asi 150 cisel
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)
#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;
}
Zobrazeno 11 zpráv z 11.