switch w C

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.

 
#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;
}
4

średnik po ostatnich printf'ach dopisać ?

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ć

 #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;
}
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
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

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