Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 07. 11. 2014 17:19

bigmary
Zelenáč
Příspěvky: 3
Reputace:   
 

CO mama spatne? C zaklady

zadani: Vypište třetí největší číslo v poli

muj kod:

#include <stdio.h>

int porovnani(){
    int i;
    int max1 = 2;
    int max2 = 1;
    int max3 = 0;
    int cislo[100];
    int n;
   
    printf("Zadej pocet srovnavanych cisel. ");
    scanf_s("%d", &n);
    for (i = 1; i <= n; i++)
    {

        printf("Zadej cislo: ");
        scanf_s("%d", &cislo[i], "\n");
        if (cislo[i] > max1) {
            max2 = max1;
            max3 = max2;
            max1 = cislo[i];
        }
        else if (cislo[i] > max2) {
            max3 = max2;
            max2 = cislo[i];
        }
        else if (cislo[i] > max3)
            max3 = cislo[i];

    }
    printf("%dTreti nejvetsi cislo je: ", max3);
}
int main()
int n = 0;
{
   

    printf("Zadej pocet srovnavanych cisel. ");
    scanf_s("%d", &n);
   
    if (n < 3)
        printf("Musis zadat alespon 3 cisla!");
    else
        porovnani();
        return 0;

}

Offline

 

#2 07. 11. 2014 18:23

bigmary
Zelenáč
Příspěvky: 3
Reputace:   
 

Re: CO mama spatne? C zaklady

Zkusila jsem jinak

#include <stdio.h>

int i;
int max;
int cislo[100];
int n = 0;
int r = 1;

int main()

{
    printf("zadej pocet porovnavanych cisel ");
    scanf_s("%d", &n);
    printf("\n");
    printf("Zadej cislo: ");
    scanf_s("%d", &cislo[0], "\n");
    max = cislo[0];

    for (i = 1, i <= n, i++)
    {
        printf("Zadej cislo: ");
        scanf_s("%d", &cislo[i], "\n");
        if (cislo[i] >= max) max = cislo[i];
    }

    do
    {
        for (i = 0, i <= n, i++)
        {
            if (cislo[i] >= max){
                max = cislo[i];
                cislo[i] = 0;
            }
        }
        for (i = 0, i <= n, i++) if (cislo[i] >= max) max = cislo[i];
        r = r + 1;
    }
    while (r < 3);
    printf("%dTreti nejvetsi cislo je: ", max);

}

Offline

 

#3 08. 11. 2014 19:16

Neth
Příspěvky: 57
Reputace:   
 

Re: CO mama spatne? C zaklady

Ahoj, máš to zbytečně celé složité, celý ten while cyklus bych zrušila a hledání třetího největšího čísla bych dělala rovnou během načítání pomocí jednoduchých podmínek.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson