[C++] Dodanie instrukcji switch do programu

darek20
Użytkownik
Użytkownik
Posty: 874
Rejestracja: 4 paź 2010, o 08:16
Płeć: Mężczyzna
Lokalizacja: wszedzie
Podziękował: 248 razy
Pomógł: 10 razy

[C++] Dodanie instrukcji switch do programu

Post autor: darek20 »

Jak zmodyfikowć ten kod żeby zstosowć w nim instrukcje switch, bo już nie wiem jak

Kod: Zaznacz cały

#include <iostream>


using namespace std;

int main()
{

   int n;
   cin>>n;

  
    
               
               if ((n-1)%4==0)  cout<<2<<endl; 
               if ((n-2)%4==0) cout<<4<<endl; 
               if ((n-3)%4==0) cout<<8<<endl; 
               if ((n-4)%4==0) cout<<6<<endl; 
                      
               
    

system("pause");
     return 0;
}
Ostatnio zmieniony 18 mar 2012, o 22:03 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Adifek
Użytkownik
Użytkownik
Posty: 1567
Rejestracja: 15 gru 2008, o 16:38
Płeć: Mężczyzna
Lokalizacja: Ostrzeszów/Wrocław
Podziękował: 8 razy
Pomógł: 398 razy

[C++] Dodanie instrukcji switch do programu

Post autor: Adifek »

Kod: Zaznacz cały

#include <iostream>


using namespace std;

int main()
{

   int n;
   cin>>n;

  
    
switch(n%4)
{
     case 3:
           cout << 2 << endl;

     case 2:
           cout << 4 << endl;

     case 1:
           cout << 8 << endl;

     case 0:
           cout << 6 << endl;
}    

system("pause");
     return 0;
}
darek20
Użytkownik
Użytkownik
Posty: 874
Rejestracja: 4 paź 2010, o 08:16
Płeć: Mężczyzna
Lokalizacja: wszedzie
Podziękował: 248 razy
Pomógł: 10 razy

[C++] Dodanie instrukcji switch do programu

Post autor: darek20 »

nie dziła jak ten pierwszy po wpisaniu 5 co innego wyskakuje niz w tym pierwszym
norwimaj
Użytkownik
Użytkownik
Posty: 5101
Rejestracja: 11 mar 2011, o 16:31
Płeć: Mężczyzna
Lokalizacja: 52°16'37''N 20°52'45''E
Podziękował: 4 razy
Pomógł: 1001 razy

[C++] Dodanie instrukcji switch do programu

Post autor: norwimaj »

Adifek, zapomniałeś o instrukcji break. Poza tym jest jeszcze jeden haczyk.

Kod: Zaznacz cały

    
switch(n%4)
{
     case 3:
     case -1:
           cout << 2 << endl;
           break;

     case 2:
     case -2:
           cout << 4 << endl;
           break;

     case 1:
     case -3:
           cout << 8 << endl;
           break;

     case 0:
           cout << 6 << endl;
}    
-- 18 mar 2012, o 12:49 --

Jeszcze są zmienione liczby (inna kolejność), ale z tym darek20 sobie dasz radę sam.
darek20
Użytkownik
Użytkownik
Posty: 874
Rejestracja: 4 paź 2010, o 08:16
Płeć: Mężczyzna
Lokalizacja: wszedzie
Podziękował: 248 razy
Pomógł: 10 razy

[C++] Dodanie instrukcji switch do programu

Post autor: darek20 »

Dzieki męcze się jeszcze z tym , chce obliczyć dwie sumy a on dodaje mi die sumy
np dla
2
2 1 2
3 1 7 8
powinno być
1+2=3
1+7+8=16

A program mi liczy
1 +1+1+7+8=19
1 +1+1+7+8=19

jak go zmienić (bez tablic)

Kod: Zaznacz cały

#include <iostream>
using namespace std;

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);


    int d;
    cin >> d;
    int suma=0;



    for(int i=0; i<d; i++)
    {
            int n;
            cin >> n;
            for(int j=0; j<n; j++)
            {
                        int a;
                        cin >> a;
                        suma += a;


                                    }



    }
    for(int i=0; i<d; i++)
    {
                cout <<suma << endl;
    }
    system("pause");
    return 0;
}
norwimaj
Użytkownik
Użytkownik
Posty: 5101
Rejestracja: 11 mar 2011, o 16:31
Płeć: Mężczyzna
Lokalizacja: 52°16'37''N 20°52'45''E
Podziękował: 4 razy
Pomógł: 1001 razy

[C++] Dodanie instrukcji switch do programu

Post autor: norwimaj »

Popatrz na pętlę z linii 16-31. Na początku pierwszego obrotu pętli wartość zmiennej suma jest równa \(\displaystyle{ 0}\). Po pierwszym obrocie wartość tej zmiennej jest równa \(\displaystyle{ 1+2=3}\). W następnym obrocie pętli nie wyzerowujesz sumy, więc kolejne liczby dodajesz do poprzednio otrzymanego wyniku.

Powinieneś wyzerować wynik na początku pętli i wypisać go na końcu tej pętli. Chyba że chcesz najpierw wszystko policzyć a później tylko wypisywać, to wtedy musisz zamiast zmiennej int suma mieć tablicę int suma[d].
ODPOWIEDZ