• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Język c sprawdzenie kodu

0 głosów
418 wizyt
pytanie zadane 27 października 2017 w C i C++ przez mn130496 Gaduła (3,510 p.)

Witam

Jestem studentem pierwszego roku studiów informatycznych.Ostatnio na zajęciach z Programowania otrzymałem 

zadanie o treści: Odczytaj dwie liczby calkowite a i b. wypisz na ekranie wszystkie liczby nieparzyste
w kolejnosci malejacej z przedzialu <a,b>.rozwiązałem to zadanie ale nie jestem pewny czy tak może być to zrobione.Czy ktoś może mi sprawdzić to zadanie i ewentualnie podpowiedzieć co miałbym zmienić?.Pozdrawiam

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

int main(void)
{
    int a;
    int b;
    int i;
    printf("Podaj liczbe calkowita z dolnego przedzialu a: ");
    scanf("%d",&a);
    printf("Podaj liczbe calkowita z gurnego przedzialu b:  ");
    scanf("%d",&b);
    for(i=b; i>=a; i--)
    {
        if(i%2!=0)
        printf(" %d \n\n",i);
    }
    system("pause");
    return (0);
}

2 odpowiedzi

+1 głos
odpowiedź 27 października 2017 przez Patrycjerz Mędrzec (192,440 p.)
wybrane 27 października 2017 przez mn130496
 
Najlepsza
  1. Popraw "gurnego" na "górnego".
  2. Wywołanie system("pause") nie jest rozwiązaniem multiplatformowym, ale ujdzie.
  3. Radziłbym napisać return 0, bez nawiasów.
komentarz 27 października 2017 przez mn130496 Gaduła (3,510 p.)

ok dzięki za pomoc.Pozdrawiam

1
komentarz 27 października 2017 przez Eryk Andrzejewski Mędrzec (163,780 p.)

Proszę, weź zamień to system("pause") na jakiegoś getchara. angel

1
komentarz 27 października 2017 przez Patrycjerz Mędrzec (192,440 p.)

Nie wiem, czy wtedy nie byłoby problemów z pozostałościami w postaci białych znaków w strumieniu, ale dwa wywołania getchar powinny dać radę smiley

0 głosów
odpowiedź 27 października 2017 przez mokrowski VIP (146,960 p.)

1. Zwróć uwagę na to że liczby nieparzyste są "oddalone od siebie" o 2. Stąd krok pętli to może być -2 (bo od max do min) co pozwoli usunąć sprawdzanie czy liczba jest nieparzysta i usunie połowę przebiegów pętli.

2. Rozwiązanie z system("pause") jest "niezalecane". Poznaj różnicę między <ctrl> + <f5> i samym <f5> w Visual Studio.

3. Aby uzyskać liczbę nieparzystą mniejszą lub równą wartości podanej, wystarczy odjąć od niej 1 i ustawić bit o indeksie 0 na wartość 1.

4. Twój program (choć nie wiem czy było to w wymaganiach), nie wykrywa faktu podania złego przedziału.

    for(int i = (maxValue - 1) | 0x01; i >= minValue; i -= 2) {
        printf("%d\n", i);
    }

 

Podobne pytania

0 głosów
1 odpowiedź 649 wizyt
pytanie zadane 1 stycznia 2018 w C i C++ przez mar25 Nowicjusz (140 p.)
+2 głosów
2 odpowiedzi 140 wizyt
pytanie zadane 8 lutego 2020 w JavaScript przez Dev26 Nowicjusz (140 p.)
+3 głosów
1 odpowiedź 127 wizyt
pytanie zadane 21 października 2019 w Inne języki przez JakSky Stary wyjadacz (14,250 p.)

86,486 zapytań

135,241 odpowiedzi

300,488 komentarzy

57,234 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...