prosty kalkulator(a jednak nie dla mnie)

0

Czesc, chciałem napisać prosty kalkulator pierwsza wersja mi działała ale pozniej sprobowalem z wlasnego pomysłu zrobic go na wiecej liczb i wyszlo cos takiego.Wiem ze strasznie przekombinowany ale no coz tak wyszlo :p

#include <stdio.h>

int main()
{
    float liczba_1;
    float liczba_2;
    float liczba_3,liczba_4,liczba_5,liczba_6;
    char znak;
    float wynik,wynik3,wynik4,wynik5;
    float Wynik2;
    char znak2,znak3,znak4,znak5;
    float wynik2;
    int iloscliczbwzadaniu;
    printf("podaj ilosc liczb w zadaniu\n");
    scanf("%d",&iloscliczbwzadaniu);
    printf("wpisz działanie:\n\n");
    scanf("%f",&liczba_1);
    if(iloscliczbwzadaniu==2)
    scanf("%c",&znak);
    scanf("%f",&liczba_2);
    if(iloscliczbwzadaniu==3)
      {
    scanf("%c",&znak3);
    scanf("%f",&liczba_4);
      }
      if(iloscliczbwzadaniu==4)
      {
    scanf("%c",&znak4);
    scanf("%f",&liczba_5);
      }
      if(iloscliczbwzadaniu==5)
      {
    scanf("%c",&znak5);
    scanf("%f",&liczba_6);
      }
    switch(znak)
   {

    case '+':

     {

      wynik=liczba_1+liczba_2;
      if(iloscliczbwzadaniu==2)
      {

      printf("Wynik dzialania\n: %f",wynik);
      }
      break;

     }

    case '-':

     {

      wynik=liczba_1-liczba_2;

if(iloscliczbwzadaniu==2)
      {

      printf("Wynik dzialania\n: %f",wynik);
      }

      break;

     }

    case '*':

     {

      wynik=liczba_1*liczba_2;

if(iloscliczbwzadaniu==2)
      {

      printf("Wynik dzialania\n: %f",wynik);
      }
      break;

     }

    case '/':

    {
     
      wynik=liczba_1/liczba_2;

if(iloscliczbwzadaniu==2)
      {

      printf("Wynik dzialania\n: %f",wynik);
      }

      break;

     }

    default:  {    
        if(iloscliczbwzadaniu==2)
      {
      printf("Nieznane dzialanie!naucz sie pisac!");
}
      break;
      
    }   
}
       switch(znak2)
   {

    case '+':

     {
        
      wynik2=wynik+liczba_3;
    if(iloscliczbwzadaniu==3){
      printf("Wynik dzialania: %f",wynik2);
    }
      break;

     }

    case '-':

     {

      wynik2=wynik-liczba_3;

        if(iloscliczbwzadaniu==3){
      printf("Wynik dzialania: %f",wynik2);
    }

      break;

     }

    case '*':

     {

      wynik2=wynik*liczba_3;

          if(iloscliczbwzadaniu==3){
      printf("Wynik dzialania: %f",wynik2);
    }

      break;

     }

    case '/':

    {
      wynik2=wynik/liczba_3;
      
    if(iloscliczbwzadaniu==3){
      printf("Wynik dzialania: %f",wynik2);
      }
      break;

     }

    default:     

    {
    if(iloscliczbwzadaniu==3){
      printf("Nieznane dzialanie!naucz sie pisac!");
    }
      break;
    
    }
   }

       switch(znak3)
   {

    case '+':

     {

      wynik3=wynik2+liczba_4;
      if(iloscliczbwzadaniu==4)
      {

      printf("Wynik dzialania\n: %f",wynik3);
      }
      break;

     }

    case '-':

     {

      wynik3=wynik2-liczba_4;
      if(iloscliczbwzadaniu==4)
      {

      printf("Wynik dzialania\n: %f",wynik3);
      }

      break;

     }

    case '*':

     {

      wynik3=wynik2*liczba_4;
      if(iloscliczbwzadaniu==4)
      {

      printf("Wynik dzialania\n: %f",wynik3);
      }
      break;

     }

    case '/':

    {
      
      wynik3=wynik2/liczba_4;
      if(iloscliczbwzadaniu==4)
      {

      printf("Wynik dzialania\n: %f",wynik3);
      }

      break;

     }

    default:  {    
        if(iloscliczbwzadaniu==4)
      {
      printf("Nieznane dzialanie!naucz sie pisac!");
      }
      break;
      
    } 
   }

    switch(znak4)
   {

    case '+':

     {

      wynik4=wynik3+liczba_5;
      if(iloscliczbwzadaniu==5)
      {

      printf("Wynik dzialania\n: %f",wynik4);
      }
      break;

     }

    case '-':

     {
wynik4=wynik3-liczba_5;
      if(iloscliczbwzadaniu==5)
      {

      printf("Wynik dzialania\n: %f",wynik4);
      }

      break;

     }

    case '*':

     {

      wynik4=wynik3*liczba_5;
      if(iloscliczbwzadaniu==5)
      {

      printf("Wynik dzialania\n: %f",wynik4);
      }
      break;

     }

    case '/':

    {
     
      wynik4=wynik3/liczba_5;
      if(iloscliczbwzadaniu==5)
      {

      printf("Wynik dzialania\n: %f",wynik4);
      }

      break;

     }

    default:  {    
        if(iloscliczbwzadaniu==5)
      {
      printf("Nieznane dzialanie!naucz sie pisac!");
      }
      break;
      }
    }   

    switch(znak5)
   {

    case '+':
    {
        wynik5=wynik4+liczba_6;
     
      if(iloscliczbwzadaniu==6)
      {

      printf("Wynik dzialania\n: %f",wynik5);
      }
      break;

     }

    case '-':

     {

      wynik5=wynik4-liczba_6;
      if(iloscliczbwzadaniu==6)
      {

      printf("Wynik dzialania\n: %f",wynik5);
      }

      break;

     }

    case '*':

     {

              wynik5=wynik4*liczba_6;
     {
      if(iloscliczbwzadaniu==6)
      

      printf("Wynik dzialania\n: %f",wynik5);
      }
      break;

     }

    case '/':

    {
     wynik5=wynik4/liczba_6;
     
        wynik5=wynik4/liczba_6;
      if(iloscliczbwzadaniu==6)
      {

      printf("Wynik dzialania\n: %f",wynik5);
      }

      break;

     }

    default:
    {    
        if(iloscliczbwzadaniu==6)
      {
      printf("zle");
      }
      break;
      
    }   



    return 0;
}
}
1

Nie przekombinowałeś, tylko nie nauczyłeś się podstaw języka i algorytmiki...

Użyj tablic i pętli.

2
Spine napisał(a):

Nie przekombinowałeś, tylko nie nauczyłeś się podstaw języka i algorytmiki...

Użyj tablic i pętli.

Przede wszystkim to powinien definiować własne funkcje i podzielić tego main na małe części.
Każda funkcja, która ma więcej niż 20 linii lub więcej niż 3 instrukcje sterujące, jest trudna w czytaniu i utrzymaniu.

W tym wypadku te progi są bardzo przekroczone.

0

Jeśli pojedyncza funkcja nie mieści się na ekranie laptopa zaczynam krzyczeć coś o klauzuli sumienia. Oczywiście są wyjątki, ale tutaj nie zachodzą.
Poza tym używasz za dużo odstępów pionowych (pustych linii które jeszcze bardziej rozwlekają ten kod), a za mało poziomych (dwie spacje wcięcia są bardziej czytelne niż jedna)

3

Wielkie szczęście, że ten kod nie działa. Czasami tego typu kod niestety działa, i wtedy dużo czasu trzeba poświęcić na przekonanie autora do zmian.

1

Zobacz na ten przykład i porównaj go sobie ze swoim kodem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1