Odjechani.com.pl

Pełna wersja: Początki z językiem C (kody, sugestie)
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2 3 4
Dopiero zaczynam i bazuję na niby prostych programach, ale i z nimi mam problemy.
Więc postanowiłem założyć wątek, bo na studiach tylko lecą do przodu i do przodu jak Krzynówek ;)

Mam napisać takie coś:
1.Napisz program, który wczyta liczbę całkowitą i wypisze na ekran komunikat na temat parzystości liczby.


Napisałem coś takiego: http://wklej.org/id/2915290/

Problem w tym, że program nawet przy wpisaniu liczby parzystej wyświetla komunikat że jest nieparzysta.
 if(( a/2)==0)
Dlatego to tak działa, bo ten if sprawdza czy wynik dzielenia tej liczby przez 2 jest równy zero. A np. 11/2 to nie będzie zero. Powinieneś napisać to tak:
 if(( a%2)==0)
Moje sugestie:
1. Zmień formatowanie kodu. Zamiast:
    if(( a/2)==0){
    printf("Liczba %d jest parzysta" , a);
    }else{
    printf("Liczba %d jest nieparzysta", a);
    }
pisz:
    
if(( a/2)==0)
{
      printf("Liczba %d jest parzysta" , a);
}
else
{
     printf("Liczba %d jest nieparzysta", a);
}
2. Użyj typu long long aby program mógł działać na większych liczbach.
3. Jak masz jedną instrukcje w pętli czy if'ie, możesz pominąć nawiasy klamrowe i po prostu napisać:
if(( a%2)==0) printf("Liczba %d jest parzysta" , a);
4. Załączaj tylko i wyłącznie te biblioteki, z których używasz czegoś. Biblioteka stdlib.h nie jest potrzeba w tym kodzie, więc najlepiej ją suń z tego kodu.

Nie bardzo rozumiem. Ten % to znak dzielenia? Myślałem, że / ?
Pytam o takie szczególiki bo przez nie nie mogę iść dalej ;)

Wiem, że aby liczba była parzysta nie może mieć reszty, czyli reszta=0.
% to obliczanie reszty z dzielenia. / to jest operator dzielenia.
Kolejny przykład, takie polecenie: https://i.imgur.com/6ICWgeS.png

Mój kod: http://wklej.org/id/2915873/

Nie jestem pewien zapisu w 25 linijce, Code block pokazuje:
25|warning: suggest parentheses around '&&' within '||' [-Wparentheses]|
1. Zgodnie z treścią zadania zamiast:
else if(b<c || c<a)
powinno być:
else if(b<c || b<a)
2. Znowu niepotrzebne załączenie stdlib.h.
3. Co do ostrzeżenia, to nie wiem czemu wystąpiło, program wygląda na dobry poza tym o czym wspomniałem w pkt. 1. Być może to przez użycie sporej ilości operatorów bez nawiasów. W każdym razie to nie błąd.
4. Pamiętaj o tym formatowaniu kodu.
5. Zamiast:
        wynik = b/c;
        printf("%d",wynik);
napisz od razu:
printf("%d",b/c);
Suicider napisał(a):Nie jestem pewien zapisu w 25 linijce, Code block pokazuje:
Kod:
25|warning: suggest parentheses around '&&' within '||' [-Wparentheses]|


Kompilator sugeruje Ci nawiasy w ifie.

if((c>a && b!=5) || (b>c && a!=0)), to nie błąd tylko wskazówka.

Jak biorę New project, i aplikację konsolową w Code Blocks to automatycznie mi dodaje tę bibliotekę na początku.



Dodałem te nawiasy i mam errora w postaci: |
25|error: expected expression before '||' token|
Dziwne bo pan Tłuczek w książce też te nawiasy podaje.

Mam takie coś:


Napisz program, który wczyta liczbę całkowitą (dodatnią) n, a następnie wypisze wszystkie liczby całkowite od n do 1 włącznie.

Zmodyfikuj program ze wcześniejszego zadania tak, aby zamiast wypisywać liczby, sumował je i na końcu wypisał ostateczny wynik.


No i est takie coś, co chyba pasuje do tego pierwszego: http://wklej.org/id/2916058/
Nie wiem natomiast jak to zrobić by on te liczby w pętli dodawał.
Nawiasy są w porządku, a przynajmniej w tej formie co podałem, może coś uciąłeś przypadkowo, albo inna opcja, gdzieś w okolicy brakuje klamry } lub jest o jedną za dużo i kompilator pokazuje błąd w niewłaściwym miejscu. Brakuje mu jakiegoś wyrażenie, ale nie widzę całości kodu aktualnego, to nie powiem.
(16.10.2016, 19:54)Suicider napisał(a): [ -> ]Napisz program, który wczyta liczbę całkowitą (dodatnią) n, a następnie wypisze wszystkie liczby całkowite od n do 1 włącznie.

Zmodyfikuj program ze wcześniejszego zadania tak, aby zamiast wypisywać liczby, sumował je i na końcu wypisał ostateczny wynik.

No i est takie coś, co chyba pasuje do tego pierwszego: http://wklej.org/id/2916058/
Nie wiem natomiast jak to zrobić by on te liczby w pętli dodawał.
Do tego lepiej użyć pętli for, do zsumowania po prostu robisz zmienną z początkową wartością równą 0 i w każdym obiegu pętli dodajesz do tej zmiennej nową wartość zmiennej a. Ja bym to zrobił tak:
#include <stdio.h>
int main()
{
    int suma=0,a,i;
    printf("Podaj liczbe: ");
    scanf("%d",&a);
    for(i=a;i>0;i--)
    {
        printf("%d\n",i);
        suma+=i;
    }
    printf("Suma podanych liczb wynosi: %d\n",suma);
    return 0;
}
Stron: 1 2 3 4