Kezdőlap › Fórumok › Programozás › C programozás
- This topic has 351 hozzászólás, 49 résztvevő, and was last updated 15 years, 7 months telt el by
valaki456.
-
SzerzőBejegyzés
-
2008-12-26-11:24 #2016396
Szia Zoli!
Hogy kell lezárni a vizsg végét -al? Ezt nem értem! A hosszát a getline adja! Továbbra is blamába vagyok! Álljon itt egy teljes program ami bizonyítja hogy működik az elején felvetett probléma ellentéte:
Code:#include
#include
#include
#include
#include
#include#define MAX 100
int getline(char s[],int lim);
int egesz(char s[]);struct adatok{
int suly;
int magassag;
float BMI;
int sulycsop;
};int main(void){
struct adatok M[MAX];
int ok,vege,i,db;
char vizsg[4];
char strseged[10];clrscr();
printf(„ttttBMI számoló program!n”);
for(i=0;i<=7;i++) printf("----------"); db=vege=0; do{ /* Testtömeg bekérése */ ok=0; do{ printf("nKérem a testtömeget(kg): "); i=getline(vizsg,4); if (i==0) vege=1; else if (i>3) printf(„nTúl hosszú a megadott érték!n”);
else if (!egesz(vizsg)) printf(„nA megadott érték nem egész szám!n”);
else
{
M[db].suly=atoi(vizsg);
if (M[db].suly<20 || M[db].suly>200) printf(„nA megadott tömeg értéknek 20 és 200 között kell lennie!n”);
else ok=1;
}} while (!ok && !vege);
if (!vege) {
/* Magasság bekérése */
ok=0;
do{printf(„nKérem a magasságot(cm): „);
i=getline(vizsg,4);
if (i==0) printf(„nA magasságot mindenképp megkell adnod!n”);
else if (i>3) printf(„nTúl hosszú a megadott érték!n”);
else if (!egesz(vizsg)) printf(„nA megadott érték nem egész szám!n”);
else
{
M[db].magassag=atoi(vizsg);
if (M[db].magassag<150 || M[db].magassag>250) printf(„nA megadott magasság értéknek 150 és 250 között kell lennien”);
else ok=1;
}
}while (!ok);/* BMI érték meghatározása */
M[db].BMI=M[db].suly/pow(M[db].magassag/100.0,2);
if (M[db].BMI<18.5) M[db].sulycsop=0;
else if (M[db].BMI>=18.5 && M[db].BMI<25) M[db].sulycsop=1;
else if (M[db].BMI>=25 && M[db].BMI<30) M[db].sulycsop=2;
else
M[db].sulycsop=3;db++;
}}while(!vege);
clrscr();
printf("nSorszám testtömeg megasság érték");
for (i=0;i
legutóbbi hsz