Anonymní profil Lukas – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Lukas – Programujte.comAnonymní profil Lukas – Programujte.com

 

Příspěvky odeslané z IP adresy 93.89.101.–

Lukas
C / C++ › Neprobehne mi znovu scanf
17. 10. 2010   #134684

sputnikone napsal:
Nebude fungovat fflush(stdin) ?

EDIT: Ne, nebude (navíc to byla od začátku pěkná prasárna):smile17:



no prasárna to je :-))) - věřím, že někdo by to napsal jen na polovinu řádků a ještě líp :-), ale tak třebas to časem až pokročím bude lepší :-)

Lukas
C / C++ › Neprobehne mi znovu scanf
17. 10. 2010   #134683

Opravdu moc děkuji - funguje to. Ale přiznám se ... asi bych na to sám jen tak nepřišel :-)

Lukas
C / C++ › Neprobehne mi znovu scanf
17. 10. 2010   #134682

Dobře, děkuji.... jdu to dokončit.

Lukas
C / C++ › Neprobehne mi znovu scanf
17. 10. 2010   #134677

Děkuji za rychlou odpověď
A jak prosím vyčistím tu vstupní frontu? Zkoušel jsem dát a = 0 před ten zmiňovaný scanf, ale to asi nic společného s frontou nemá... Nevím moc co ta fronta je.

Lukas
C / C++ › Neprobehne mi znovu scanf
17. 10. 2010   #134669

Ahoj,
zacinam s Cckem a mam problem ohlednene nasledujicho kodu. Jedna se o program pro nacitani cisel, ktery vyhodnucuje minimalni a maximalni cislo ze zadanych a dale arit. prumer zadavanych cisel.



#include <stdio.h>
#include <conio.h>

int main(){
double pole[100]; /* pole celych cisel (maximalne 100) */
int i,a;
int pocet = 0;
float d,souc,max,min;
double cislo;

printf("**********PROGRAM NA HLEDANI MINIMA A MAXIMA VYPOCET d**********\n\n");
while(1){
souc = 0;

printf("Kolik cisel chtet zadat?\n(maximalne vsak %d):" , 100);
a = scanf("%d", &pocet);

if(a == 1){
printf("Vzdy zadejte cislo a nasledne stiknete enter.%d\n\n",pocet);
for(i=0; i<pocet; i++){
scanf("%lf",&pole[i]);
souc=souc+pole[i]; //nacitani cisel, pro pozdejsi vypocet prumeru
//printf("Bylo nacteno cislo %d\n",pole[i]);
}

printf("\n\n******Pole obsahuje prvky:******\n\n");
for(i=0; i<pocet; i++){
printf("Cislo c.[%d] je %.2f\n",i,pole[i]);
}
max=pole[0];
min=pole[0];

for(i=1; i<pocet; i++){
if (pole[i]>max){
max=pole[i];
}
if (pole[i]<min){
min=pole[i];
}
}
// Vypocet prumeru (nacitany pri zadavani)
d = souc/pocet;

printf("\n********************************\nMaximalni zadane cislo je: %.2f\n",max);
printf("Minimalni zadane cislo je: %.2f",min);
printf("\nAritmeticky prumer zadanych cisel je: %.2f",d);
}
else{
printf("\nZadal jsi spatne hodnotu.Zkus to znova!");
}


printf("\n********************************\nPro dalsi vypocet stikni mezernik(pro ukonceni,cokoli):\n\n");
//if (scanf("%lf",&cislo)==EOF)break;
if(getch()!=' ')break;
}
}


Problem spociva v radku:


printf("Kolik cisel chtet zadat?\n(maximalne vsak %d):" , 100);
a = scanf("%d", &pocet);


Pri behu progamu: pokud zadam spravne pocet cisel, tak vse probhne jak ma a pokud stisknu mezernik program se opakuje a vse o5 funguje. Bohuzel pokud zadam spatne pocet cisel (napisu treba nejaky text) , sice mi zafunguje podminka a vypise mi to, ze jsem zadal spatne at to zkusim znovu, ale bohuzel kdyz dam mezernik a chci znovu, tak uz mi nefuguje prave to scanf a nemuzu tam zadne cislo zadat.

Prosim nevite jak to opravit? Nemuzu na to vubec prijit.

Dekuji

 

 

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