[c] while i switch

FEMO
Użytkownik
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

Post autor: FEMO »

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 ?
soku11
Użytkownik
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

Post autor: soku11 »

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.
FEMO
Użytkownik
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

Post autor: FEMO »

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?
soku11
Użytkownik
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

Post autor: soku11 »

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.
FEMO
Użytkownik
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

Post autor: FEMO »

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 ?
soku11
Użytkownik
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

Post autor: soku11 »

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:

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;
}
Nie ma w nim zadnych dziwnych konstrukcji, a mozna go napisac duuuzo prosciej. Pozdrawiam.
ODPOWIEDZ