Stránka 1 z 1

help-zjednodušení jednoduchyho cyklu v C  Vyřešeno

Napsal: 30 říj 2010 20:17
od preclik
ahoja,
potřeboval bych pomoct jak zjednodušit cyklus.Mělo by to být funkční eratosthenovo sito.
"ten vnitřní (škrtací) cyklus lze napsat tak, aby již nebylo nutné testovat nějaké další podmínky".tohle mi na to bylo napsáno tak kdybyste někdo věděl jak to poladit ke spokojenosti:)

Kód: Vybrat vše

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


int main(){

int i,j,zadej;

printf("Zadej velikost pole: ");
scanf("%d",&zadej);

int pole[zadej];


for(i=0;i<(zadej-1);i++){
    pole[i]=i+2;

}

for(i=0;i<(zadej-1);i++){
    j=i+1;
    if(pole[i]!=0){
        while(j<zadej){
            if(pole[j]%pole[i]==0){
                pole[j]=0;
            }
        j++;
        }

    }

}


for(i=0;i<=(zadej-1);i++){
    if(pole[i]!=0)
    printf("%d, ",pole[i]);
}


return 0;
}

Re: help-zjednodušení jednoduchyho cyklu v C

Napsal: 31 říj 2010 23:28
od CZechBoY
jde to trošku zjednodušit, místo 3cyklů bude jeden, jinak jsem to moc nečetl co tam je dalšího...

Kód: Vybrat vše

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


int main(){

int i,j,zadej;

printf("Zadej velikost pole: ");
scanf("%d",&zadej);

int pole[zadej];


for(i=0;i<(zadej-1);i++){
    pole[i]=i+2;
    j=i+1;

    if(pole[i]!=0){
        while(j<zadej){
            if(pole[j]%pole[i]==0){
                pole[j]=0;
            }
        j++;
        }

    }
    if(pole[i]!=0)
    printf("%d, ",pole[i]);
}


return 0;
}

se závorkama si nejsme moc jistej ještě na to mrkni, možná někde něco zůstalo