Wyznaczenie największej i najmniejszej liczby nipodzielnej przez 2, 3, 5, 7

0

Mam wypisać naiwiekszą liczbę niepodzielną przez 2, 3, 5, 7 (zakres 1-1000)

Mój kod wygląda mniej wiecej tak:

#include<stdio.h>
int main()

{
int max,min, i, tab[999]
min = tab[0];
max = tab[0];
for(i=1;i<1000;i++){
if(i%210 !=0){
if(tab[i]>max){
tab[i]=max;
}
if(tab[i]<min){
tab[i]=min;
}
printf("%d", max);

return 0;
}

Program się odpala, ale pokazuje bzdury. Prosze mi wybaczyć, jeśli są tu jakieś herezje, ale po prostu jeszcze nie do konca ogarniam tablice

1

Poprawiłem wcięcia (polecam używać) i może teraz zobaczysz parę błędów:

#include<stdio.h>

int main() {
    int max,min, i, tab[999]
        min = tab[0];
    max = tab[0];

    for (i = 1; i < 1000; i++) {
        if (i % 210 != 0) {
            if (tab[i] > max) {
                tab[i] = max;
            }
            if (tab[i] < min) {
                tab[i] = min;
            }
            printf("%d", max);

            return 0;
        }
0

Nawiasy na pewno. Ja to przepisywałam, bo robię to w Oracle Boxie i nie wiem jak to skopiować do schowka na Windowsie jakby. W sensie kopiuję, ale to się zapisuje w schowku na Oracle.

Czy ja tu powinnam wprowadzić funkcje?

0

U mnie się kompiluje, bo mam wszystko zapisane z nawiasami poprawnie, to przepisywałam na szybko, zeby był głowny zarys :)
Nie wiem jak to skopiować z Oracle Boxa, ktoś da radę tez z tym mi pomoc? Jak kopiuje to wszystko zapisuje się w systemie linux w oracle boxie

1

tab[999] ma indeksy od 0 do 998 a Ty sobie iterujesz od 1 do 1000.
W ogóle to po co ci tablica? Masz wypisać 2 liczby tylko.
Największa to będzie pierwsza spotkana idąc od 1000 więc możesz iterować "od tyłu" i wypisać po prostu pierwszą znalezioną, najmniejsza odwrotnie.

0

W sumie o tym nie pomyślałam... Tablice wzięłam po to, żeby się ich pouczyć trochę. Dopiero zaczynam,więc temat jest dla mnie trudny :)

0

No to szybko się naucz, bo niebawem dział zostanie zlikwidowany :)

0

Zobacz ile razy wykona Ci się pętla. No i ten warunek z mody po 210... Z treści chyba nie wynika, że to ma być iloczyn liczb?

0

teraz program działa i chyba prawdiłowo.
Podaję kod skrótowy:

for(i=999; i>1;i--)
{
if(i%210!=0)
{
printf("%d",i);
break;
}
}

for(i=1; i<100;i++)
{
if(i%210!=0)
{
printf("%d",i);
break;
}
}

Wynik min = 1 i wynik max = 999. Czy teraz instrukcje warunkowe są poprawnie sformułowane?

0

No zastanówmy się przez chwilę. Jakby tak np. sprawdzić czy 999 nie dzieli się przez żadną podaną liczbę? Nie wiem, ale wydaje się to niegłupie. :P

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