Diskuze: Problém s polom

C++ C a C++ Problém s polom

Avatar
ra3sk
Člen
Avatar
ra3sk:

Ahoj, mám problém. Triedim pole s bubble sortom. Roztriedi sa mi to a v tom prvom výpise mám na výstupe vždy po najväčšom čísle nejaké menšie. Poradte mi prosím ako to vyriešiť. Díky.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
    srand(time(NULL));

  int pole_cisel[50],i,j,pom,pole_jednociferne[50],pole_dvojciferne[50],k=0,h=0,pocitadlo_jednociferne=0,pocitadlo_dvojciferne=0;
    for(i=0;i<50;i++){
        pole_cisel[i]=rand()%100;
        if (pole_cisel[i]/10==0){
            pole_jednociferne[k]=pole_cisel[i];
            pocitadlo_jednociferne++;
            k++;
        }
        else{
            pole_dvojciferne[h]=pole_cisel[i];
            pocitadlo_dvojciferne++;
            h++;
        }
    }
    for (i=0;i<50;i++) {
        printf("%d\n",pole_cisel[i]);
    }
    for(i=0;i<49;i++){
        for(j=0;j<48-i;j++){
            if(pole_cisel[j]>pole_cisel[j+1]){
                pom=pole_cisel[j];
                pole_cisel[j]=pole_cisel[j+1];
                pole_cisel[j+1]=pom;
            }
        }
    }
    printf("\n\n\n\n\n");
    for (i=0;i<50;i++) {
        printf("%d\n",pole_cisel[i]);
    }

    printf("\n\n\n\n\n");
        printf("%d\n",pocitadlo_jednociferne);


    printf("\n\n\n\n\n");
        printf("%d\n",pocitadlo_dvojciferne);

    printf("\n\n\n\n\n");
    for (i=0;i<pocitadlo_jednociferne;i++) {
        printf("%d\n",pole_jednociferne[i]);
    }
    printf("\n\n\n\n\n");
    for (i=0;i<pocitadlo_dvojciferne;i++) {
        printf("%d\n",pole_dvojciferne[i]);
    }
    for(i=0;i<pocitadlo_jednociferne;i++){
        for(j=0;j<pocitadlo_jednociferne-i-1;j++){
            if(pole_jednociferne[j]>pole_jednociferne[j+1]){
                pom=pole_jednociferne[j];
                pole_jednociferne[j]=pole_jednociferne[j+1];
                pole_jednociferne[j+1]=pom;
            }
        }
    }
    printf("\n\n\n\n\n");
    for (i=0;i<pocitadlo_jednociferne;i++) {
        printf("%d\n",pole_jednociferne[i]);
    }

    for(i=0;i<pocitadlo_dvojciferne;i++){
        for(j=0;j<pocitadlo_dvojciferne-i-1;j++){
            if(pole_dvojciferne[j]>pole_dvojciferne[j+1]){
                pom=pole_dvojciferne[j];
                pole_dvojciferne[j]=pole_dvojciferne[j+1];
                pole_dvojciferne[j+1]=pom;
            }
        }
    }
    printf("\n\n\n\n\n");
    for (i=0;i<pocitadlo_dvojciferne;i++) {
        printf("%d\n",pole_dvojciferne[i]);
    }
        return 0;
}
 
Odpovědět 14. března 19:47
Avatar
ra3sk
Člen
Avatar
Odpovídá na ra3sk
ra3sk:

Už som na to prišiel. V tom cykle na triedenie som mal 48 namiesto 49.

Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět  +1 14. března 20:33
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.