switch w C

MO
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 7 lat
  • Postów:74
0

Co musze zmienić w poniższym programie, żeby działała poprawnie opcja switch? Nie działa mi jeśli daje więcej elementów do 1 case.

Kopiuj
 
#include <stdio.h>
#include <stdlib.h>

int n;
int main()
{
    printf("1 -");
    printf("2 -");
    printf("3 -");
    printf("4 -");
    scanf("%d",&n);
    switch(n)
    {
case 1:
    {
    printf("1 -");
    printf("1 -");
    printf("1 -");
    printf("1 -");
    printf("1 -")
    }break;
case 2:
    {
    printf("2 -");
    printf("2 -");
    printf("2 -");
    printf("2 -");
    printf("2 -")
    }break;
case 3:
    {
    printf("3 -");
    printf("3 -");
    printf("3 -");
    printf("3 -");
    printf("3 -")
    }break;
case4:
    {
    printf("4 -");
    printf("4 -");
    printf("4 -");
    printf("4 -");
    printf("4 -")
    }break;
default :printf("koniec");
    }
    return 0;
}
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:około 15 godzin
4

średnik po ostatnich printf'ach dopisać ?


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
MO
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 7 lat
  • Postów:74
0

Wcześniej pisałem na szybko i zjadłem ";", ale głównie chodzi mi o wykonanie switch w programie poniżej. Wcześniej na if mi działał, a teraz nie mogę go odpalić i nie wiem co musze poprawić

Kopiuj
 #include <stdio.h>
#include <stdlib.h>

int tab[10][10],i,n,j,x,w_k,suma,numer,suma_ponizej,suma_powyzej,menu;
int pytanie;
int main()
{
do
{
    srand(time(NULL));
    printf("Wybierz wielkosc macierzy (max 10x10): ");
    scanf("%d",&n);
    if (n<10)
    {
    suma_ponizej==0;
    for (i=1;i<=n;++i)
    {
        for (j=1;j<=n;++j)
        {
            tab[i][j]=rand()%100;
            if (i>j)
            suma_ponizej=suma_ponizej+tab[i][j];
            if (i<j)
            suma_powyzej=suma_powyzej+tab[i][j];
        }
    }
    for (i=1;i<=n;++i)
    {
        for (j=1;j<=n;++j)
        {
            printf("%.2d  ",tab[i][j]);
        }
        printf("\n");
    }
    puts("1 - Suma wartosci ponizej przekatnej");
    puts("2 - Suma wartosc powyzej przekatnej");
    puts("3 - Suma wierszy lub kolumn");
    puts("0 - Zakoncz program!");
    scanf("%d",&menu);
    switch(menu);
case 1:
    {
    for (i=1;i<=n;++i)
    {
        for (j=1;j<=n;++j)
        {
            if (i>j)
            printf("%.2d  ",tab[i][j]);
            else printf("    ");
        }
        printf("\n");
    }
    printf("Suma: %d\n",suma_ponizej);
    }break;
case 2:
    {
    for (i=1;i<=n;++i)
    {
        for (j=1;j<=n;++j)
        {
            if (i<j)
            printf("%.2d  ",tab[i][j]);
            else printf("    ");
        }
        printf("\n");
    }
    printf("Suma: %d\n",suma_ponizej);
    }break;
case 3:
    {
    printf("1 - Suma wiersza\n2 - Suma kolumny\n");
    scanf("%d",&x);
    if (x==1)
        {
        printf("Podaj numer wiersza:\n");
        scanf("%d",&numer);
        suma=0;
        for (i=1;i<=n;++i)
        {
        for (j=1;j<=n;++j)
            {
            if (i==numer)
            {
            suma=suma+tab[i][j];
            printf("%.2d  ",tab[i][j]);
            }
            }
        }
    printf("\nSuma wiersza %d: %d",numer,suma);
        }
    if (x==2)
        {
        printf("Podaj numer kolumny:\n");
        scanf("%d",&numer);
        suma=0;
        for (i=1;i<=n;++i)
        {
        for (j=1;j<=n;++j)
            {
            if (j==numer)
            {
            suma=suma+tab[i][j];
            printf("%.2d  \n",tab[i][j]);
            }
            }
        }
    printf("\nSuma kolumny %d: %d",numer,suma);
        }
    }break;
    default :printf("koniec");
    }
    else printf("Podales zly zakres macierzy !");
    do
    {
    printf("\n0 - wykonaj ponownie\n1 - zamknij program\n");
    scanf("%d",&pytanie);
    if (pytanie>=2)
    {
        printf("Podales zla liczbe!");
    }
    }while((pytanie>=2));
}while (pytanie==0);
    return 0;
}
edytowany 4x, ostatnio: morodis
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:około 15 godzin
1
  1. Zapoznaj się z pojęciem formatowania kodu: http://4programmers.net/Forum/998482
  2. Trochę lepszy sposób na menu: http://4programmers.net/Forum/1100492
  3. Chyba masz jakiś problem z tymi średnikami, to nie jest coś opcjonalnego, czasami jest potrzebny ale nie wsadzaj go do każdej ...
  4. Po switch masz zbędny średnik

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: _13th_Dragon
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
2

Poczytaj o funkcjach, bo jesli ich nie zastosujesz, to kazdy normalny wykladowca kazal by Ci to napisac od nowa.

https://pl.wikibooks.org/wiki/C/Funkcje

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.