Kde je chyba??? – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Kde je chyba??? – C / C++ – Fórum – Programujte.comKde je chyba??? – C / C++ – Fórum – Programujte.com

 

Mau
~ Anonymní uživatel
3 příspěvky
29. 12. 2007   #1
-
0
-

Zdravím, potřebovala bych pomoct s programem...nemohu přijít na to proč mi to nejede, sedím nad tím už dlouho a určitě o bude nějaká hloupost, které jsem si jen nevšimla. Moc prosím o radu... Díky moc

#include <stdio.h>

#include <stdlib.h>

#define MAXM 100
#define MAXN 100


int main(int argc, char *argv[])
{
char ch;
int konec=0;
int i;
int P=0;


for (;;){

system("CLS");
printf("\n\n\n\n\n\n******** Program pro zpracovani termobronchoskopickeho vysetreni *********\n\n");
printf("\nMOZNOSTI:");
printf("\n[a] ..... Zadani poctu hodnot, aktualne je nastaveno: %i", P);
printf("\n ..... Nacteni jednotlivych teplot z klavesnice");
printf("\n[c] ..... Vypis jednotlivych teplot na obrazovku");
printf("\n[d] ..... Vypocet a vypsani pozice a hodnoty minima a maxima");
printf("\n[q] ..... konec");

printf("\n\nStiskem pismenka zvolte cinnost:");
ch=getch();


switch(ch) {

case 'a': system("CLS");
printf("\nZadani poctu hodnot\n");
int prvek;
puts("\nzadej pocet mereni");
scanf("%i",&P);

printf("\n"); system("PAUSE");
break;

case 'b': system("CLS");
printf("\nNacteni jednotlivych teplot z klavesnice\n");
float T[P]; // definuje pole "T[]" o délce P
printf("\nzadej namerene teploty");
for(i=0;i<P;i++) // cyklus pro nacteni poctu prvku
scanf("%f", &T[i]); // načte "prvek"
printf("\n"); system("PAUSE");
break;


case 'c': system("CLS");
printf("\nVypis jednotlivych teplot na obrazovku\n");
for(P=0;P<=(P-1);P++)
printf("Na %i. pozici - %.2f\n",(P+1),T[P]);
getch();
printf("\n"); system("PAUSE");
break;

case 'd': system("CLS");
printf("\nVypocet a vypsani pozice a hodnoty minima a maxima\n");
int min=T[0],max=T[0]; // deklaruje nejmenší a největší číslo jako první prvek pole
for(i=0; i<(P-1); i+=1) // cykl pro porovnávaní čísel , "(P-1)" - počet měření -1 protože nebudu porovnavat první číslo samo se sebou
{
if (min>T[i+1]) // v cyklu se nejprve porovna hodnota "min" (pole"T[]" s indexem "0") s hodnotou pole T[i+1] (index má v prvním cyklu hodnotu 1)
min=T[i+1]; // pokud je "min" vetší než hodnota pole "T[i+1]" v proměnné "min" není nejmenší číslo a
přiřadí do "min" hodnotu "T[i+1]"
if (max<T[i+1]) // v cyklu se nejprve porovna hodnota "max" (pole"T[]" s indexem "0") s hodnotou pole
T[i+1] (index má v prvním cyklu hodnotu 1)
max=T[i+1]; // pokud je "max" menší než hodnota pole "T[i+1]" v proměnné "max" není největší číslo a
přiřadí do "max" hodnotu "T[i+1]"
}
printf("nejmensi cislo je %i\n",min); // vypíše minimalní hodnotu
printf("nejvetsi cislo je %i\n",max); // vypíše maximální hodnotu
printf("\n"); system("PAUSE");
break;

case 'q': konec=1; break;


default: system("CLS");
printf("\nNeznama cinnost !");
printf("\n"); system("PAUSE");

}


}


printf("\nKONEC\n");
return 0;
}

Nahlásit jako SPAM
IP: 88.100.249.–
AdamHlavatovic0
Stálý člen
29. 12. 2007   #2
-
0
-

takyto mrdnik vam tu bude citat malokto, pouzite interny tag code a mozno sa nejaky dobrak najde

Nahlásit jako SPAM
IP: 217.73.16.–
_k_
Duch
29. 12. 2007   #3
-
0
-

Na



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

#define MAXM 100
#define MAXN 100


int main(int argc, char *argv[])
{
char ch;
int konec=0;
int i;int prvek;int min=0, max=0;
int P=0;
float *T=NULL;

while(konec!=1){

system("clear");
printf("\n\n\n\n\n\n******** Program pro zpracovani termobronchoskopickeho vysetreni *********\n\n");
printf("\nMOZNOSTI:");
printf("\n[a] ..... Zadani poctu hodnot, aktualne je nastaveno: %i", P);
printf("\n..... Nacteni jednotlivych teplot z klavesnice");
printf("\n[c] ..... Vypis jednotlivych teplot na obrazovku");
printf("\n[d] ..... Vypocet a vypsani pozice a hodnoty minima a maxima");
printf("\n[q] ..... konec");

printf("\n\nStiskem pismenka zvolte cinnost:");
ch=fgetc(stdin);


switch(ch) {

case 'a': system("clear");
printf("\nZadani poctu hodnot\n");

puts("\nzadej pocet mereni ");
scanf("%i",&P);

printf("\n");
fgetc(stdin);
fgetc(stdin);
break;

case 'b': system("clear");
free(T);
printf("%d \n", P);
printf("\nNacteni jednotlivych teplot z klavesnice\n");
T=malloc(sizeof(float)*P); // definuje pole "T[]" o délce P
if(T==NULL)
exit(-1);
printf("\nzadej namerene teploty ");
for(i=0;i<P;i++) // cyklus pro nacteni poctu prvku
scanf("%f", &T[i]); // načte "prvek"
printf("\n");
fgetc(stdin);
fgetc(stdin);
break;


case 'c': system("clear");
printf("\nVypis jednotlivych teplot na obrazovku\n");
for(i=0;i<=(P-1);i++)
printf("Na %d. pozici - %.2f\n",(i+1),T[i]);
fgetc(stdin);
fgetc(stdin);
break;

case 'd': system("clear");
printf("\nVypocet a vypsani pozice a hodnoty minima a maxima\n");
min=T[0],max=T[0]; // deklaruje nejmenší a největší číslo jako první prvek pole
for(i=0; i<(P-1); i+=1) // cykl pro porovnávaní čísel , "(P-1)" - počet měření -1 protože nebudu porovnavat první číslo samo se sebou
{
if (min>T[i+1]) // v cyklu se nejprve porovna hodnota "min" (pole"T[]" s indexem "0") s hodnotou pole T[i+1] (index má v prvním cyklu hodnotu 1)
min=T[i+1]; // pokud je "min" vetší než hodnota pole "T[i+1]" v proměnné "min" není nejmenší číslo a
// přiřadí do "min" hodnotu "T[i+1]"
if (max<T[i+1]) // v cyklu se nejprve porovna hodnota "max" (pole"T[]" s indexem "0") s hodnotou pole
// T[i+1] (index má v prvním cyklu hodnotu 1)
max=T[i+1]; // pokud je "max" menší než hodnota pole "T[i+1]" v proměnné "max" není největší číslo a
// přiřadí do "max" hodnotu "T[i+1]"
}
printf("nejmensi cislo je %i\n",min); // vypíše minimalní hodnotu
printf("nejvetsi cislo je %i\n",max); // vypíše maximální hodnotu
fgetc(stdin);
fgetc(stdin);
break;

case 'q': konec=1; break;


default: system("clear");
printf("\nNeznama cinnost !");
printf("\n");
fgetc(stdin);
fgetc(stdin);
break;

}


}


printf("\nKONEC\n");
return 0;
}



system("clear") si zmen na system("cls") ak robis pod widlami.
Co bolo zle:
for(P=0;P<=(P-1);P++) - to snad ani neptrebuje komentar ;)

for (;;) - ma byt while(konec!=1)... for(;;;) ti zvysoka serie na to ci si si nastavil dakde konec na 1 alebo nie...

float T[P]; // definuje pole "T[]" o délce P => TAKTO SA DYNAMICKE POLE NEROBI!!!!!!!!!!!!!!!!!!! Ak ti to nahodou funguje tak spoliehanim sa na to zapredavas svoju dusu satanovi ktroy si raz pride vybrat svoju dan v podobe nevysvetlitelnych segfaultov vsetkych tvojich programov!

A este getch som si zmenil na fgec(stdin) (aj u system("pause")) lebo po prilinkovani curses s mi to sralo a nechcelo sa mi v tom hrabat ale ak ti to funguje ozes pouzivat to....

To AdamHlavatovic : Ctrl-C Ctrl-V do <tvoj oblubeny editor> a ide to aj bez emocii ;)

Nahlásit jako SPAM
IP: 195.91.54.–
yaqwsx+9
Posthunter
29. 12. 2007   #4
-
0
-

Takova drobnost;proc tu vsichni pisete tucne?Vzdyt je to necitelny

Nahlásit jako SPAM
IP: 85.160.103.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Mau
~ Anonymní uživatel
3 příspěvky
29. 12. 2007   #5
-
0
-

Díky moc, tučně to nepíšu schválně, to samo... :) ještě jednou díky moc si mi pomohl

Nahlásit jako SPAM
IP: 88.100.249.–
AdamHlavatovic0
Stálý člen
29. 12. 2007   #6
-
0
-

To _k_ : Ctrl-C, Ctrl-V samozrejme poznam, ale tazatel by sa mal snazit, co najzrozumitelnejsie popisat/prezentovat svoj problem, tak aby maximalizoval svoje sance na jeho odstranenie/vyriesenie. Hodit sem 106 riadkovy neformatovany kod, to urcite nieje cesta ako toho dosiahnut.

P.S urcite je plno takych, ktorych takto prezentovany kod odradil, bez toho, aby si ho aspon pozreli.

Nahlásit jako SPAM
IP: 217.73.16.–
Mau
~ Anonymní uživatel
3 příspěvky
29. 12. 2007   #7
-
0
-

To AdamHlavatovic : omlouvám se, procházela jsem si forum a všimla si, že to tam taky takhle někdo hodil, tak mi to přišlo jako pro mě nejjednodušší...

Nahlásit jako SPAM
IP: 88.100.249.–
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, 38 hostů

Podobná vlákna

Kde je chyba ? — založil sipeer

C# kde je chyba ? — založil Milan

Kde je chyba? — založil Tom@sQo

Kde je chyba? — založil VelkyBubak

Kde ej chyba — založil Tom@sQo

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ý