[c] while i switch
-
- Użytkownik
- Posty: 348
- Rejestracja: 13 lut 2007, o 17:15
- Płeć: Mężczyzna
- Lokalizacja: warszawa
- Podziękował: 163 razy
[c] while i switch
jeśli mam napisać program który wyświetli menu z wyborem jednego z działań (+,-,*,/lub koniec) potem wczyta dwie liczby i wykona wybrane działanie poczym ponownie wyświetli menu itd oraz uwzględnić poprawność danych to ile pętli tu użyć co ma być w której pętli ?
-
- Użytkownik
- Posty: 6607
- Rejestracja: 16 sty 2007, o 19:42
- Płeć: Mężczyzna
- Podziękował: 119 razy
- Pomógł: 1823 razy
[c] while i switch
Petla while bedzie ci okreslala, czy masz dalej robic dzialania czy liczyc. To bedzie petla zewnetrzna. W jej wnetrzu wyswietlasz tekst, wczytujesz polecenie (dzialanie lub koniec), a na koncu uzywasz switcha, by zadecydowac co zrobic dalej i czy wyjsc z petli zewnetrznej. Pozdrawiam.
-
- Użytkownik
- Posty: 348
- Rejestracja: 13 lut 2007, o 17:15
- Płeć: Mężczyzna
- Lokalizacja: warszawa
- Podziękował: 163 razy
[c] while i switch
pomijając pętle kontrolujące poprawność wprowadzanych danych czy będzie jeszcze jakaś pętla wewnętrzna i gdzie mam umieścić wczytanie dwóch liczb?
-
- Użytkownik
- Posty: 6607
- Rejestracja: 16 sty 2007, o 19:42
- Płeć: Mężczyzna
- Podziękował: 119 razy
- Pomógł: 1823 razy
[c] while i switch
Przeciez to wystarczy troche pomyslec Od czego sa petle - od czynnosci powtarzajacych sie wielokrotnie. Po co w takim razie petla do wczytania dwoch liczb?? Mozesz wczytac poprostu za pomoca dwoch funkcji scanf. Zadziala to nawet szybciej, niz krotka petla.
Pozdrawiam.
Pozdrawiam.
-
- Użytkownik
- Posty: 348
- Rejestracja: 13 lut 2007, o 17:15
- Płeć: Mężczyzna
- Lokalizacja: warszawa
- Podziękował: 163 razy
[c] while i switch
nie chodziło mi o pętle do wczytania dwóch liczba tylko czy nie potrzeba być może jeszcze jakiejś i gdzie ma być ten scanf przed switch czy po case czy gdzie ?
-
- Użytkownik
- Posty: 6607
- Rejestracja: 16 sty 2007, o 19:42
- Płeć: Mężczyzna
- Podziękował: 119 razy
- Pomógł: 1823 razy
[c] while i switch
Bym ci to wytlumaczyl, jednak jak widze nie masz zadnych podstaw teoretycznych z tego jezyka - niestety taka jest prawda. A ten programik to naprawde bardzo prosta rzecz ktora wymaga tylko odrobine wysilku mentalnego Tak wiec daje ci gotowy kod:
Nie ma w nim zadnych dziwnych konstrukcji, a mozna go napisac duuuzo prosciej. Pozdrawiam.
Kod: Zaznacz cały
#include <stdio.h>
typedef enum bool{true=1,false=0} bool;
void ReadNumbers(float* num1,float* num2)
{
printf("Podaj pierwsza liczbe: ");
scanf("%f",num1);
printf("Podaj druga liczbe: ");
scanf("%f",num2);
}
int main(void)
{
bool end=false;
char decision=0;
float num1=0.0f;
float num2=0.0f;
while(end==false)
{
printf("Co chcesz zrobic:\n");
printf("1. Dodawanie\n2. Odejmowanie\n3. Mnozenie\n4. Dzielenie\nInne - Koniec\n");
scanf("%c",&decision);
switch(decision)
{
case '1':
ReadNumbers(&num1,&num2);
printf("Wynik: %f\n",num1+num2);
break;
case '2':
ReadNumbers(&num1,&num2);
printf("Wynik: %f\n",num1-num2);
break;
case '3':
ReadNumbers(&num1,&num2);
printf("Wynik: %f\n",num1*num2);
break;
case '4':
ReadNumbers(&num1,&num2);
printf("Wynik: %f\n",num1/num2);
break;
default:
end=true;
}
printf("\n");
fflush(stdin);
}
return 0;
}