rok przestepny/normalny

Odpowiedz Nowy wątek
2019-05-14 19:49
0

Rok nazywamy przestępnym, jeżeli potraktowany jako liczba całkowita jest podzielny przez 4 i nie jest podzielny przez 100, lub jest podzielny przez 400.

Zadanie

Napisz program, który dla wartości roku R wczytanej ze standardowego wejścia sprawdzi czy R jest rokiem przestępnym.

Wejście

Liczba naturalna N (N<1000), a następnie N liczb naturalnych (nie większych niż 32000).

Wyjście

Dla każdej z podanych na wejściu liczb program powinen wydrukowań na ekranie wiersz postaci:

X - rok przestepny/normalny

#include "stdio.h"

int przestepny(int n)
{
return ((n % 4 == 0) && (n % 100 != 0)) || (n % 400 == 0);
}

int main()
{
int n;
printf("Podaj ilosc do sprawdzenia.\n");
scanf("%d", &n);
int rok;

for(int i=1; i<=n; i++)
    {
        printf("podaj rok \n");
        scanf("%d", &rok);
    }

if (przestepny(rok)){
printf("%d "- rok przestepny\n");
}
else {
printf("%d",rok,"- rok nie przestepny.\n");
}

chce wypisywać np 3 1991 2000 2008
i żeby wyszło
1991 - rok normalny
2000 -rok przestępny
20008 - rok przestępny

Pozostało 580 znaków

2019-05-14 20:22
0

Algorytm:

int isLeap(int n) {
    if (n % 4 != 0) {
        return 0;
    }
    else if (n % 100 != 0) {
        return 1;
    }
    else if (n % 400 != 0) {
        return 0;
    }
    else {
        return 1;
    }
}

https://en.wikipedia.org/wiki/Leap_year#Algorithm


Pozostało 580 znaków

2019-05-14 20:23
0
#include "stdio.h"

int przestepny(int n)
{
return ((n % 4 == 0) && (n % 100 != 0)) || (n % 400 == 0);
}

int main()
{

int n;
//printf("Podaj ilosc do sprawdzenia.\n");
scanf("%d", &n);
int rok;

for(int i=0; i<=n; i++)
    {
        //printf("podaj rok \n");
        scanf("%d", &rok);
        if (przestepny(rok)){
printf("%d - rok przestepny\n",rok );
}
else {
printf("%d - rok normalny\n", rok);
}

    }
return 0;
}

W codeblocks mi to działa ale jak mam wrzucić na strone to mam błąd taki
source_B1.c: In function ‘main’:

source_B1.c:18:1: error: ‘for’ loop initial declarations are only allowed in C99 mode

for(int i=0; i<=n; i++)

^

source_B1.c:18:1: note: use option -std=c99 or -std=gnu99 to compile your code

gcc -std=c99 <nazwa pliku> albo Zadeklaruj n przed pętlą. - lion137 2019-05-14 20:24

Pozostało 580 znaków

2019-05-14 20:42
0

próbowałam i nic w codeblocks działa na rózne sposoby a tam cały czas ten błąd

Może gdzieś gdzie indziej; Pokaż kod i komendy kompilacji. - lion137 2019-05-14 20:44

Pozostało 580 znaków

2019-05-14 20:46
0
#include "stdio.h"

int main()
{

int n;
scanf("%d", &n);
int rok;
int przestepny(int n)
{
return ((n % 4 == 0) && (n % 100 != 0)) || (n % 400 == 0);
}
for(int i=1; i<=n; i++)
    {
        //printf("podaj rok \n");
        scanf("%d", &rok);
        if (przestepny(rok)){
printf("%d - rok przestepny\n",rok );
}
else {
printf("%d - rok normalny\n", rok);
}

    }
return 0;
}

nawet na tak to zmieniłam i to działa w codeblocks
a na stronę gdzie nam każą to wrzucać pojawia się :

1 Błąd kompilacji 0/1000 0/32 0/1 source_B1.c: In function ‘main’:

source_B1.c:20:1: error: ‘for’ loop initial declarations are only allowed in C99 mode

for(int i=1; i<=n; i++)

^

source_B1.c:20:1: note: use option -std=c99 or -std=gnu99 to compile your code

2 Błąd kompilacji 0/1000 0/32 0/2 source_B1.c: In function ‘main’:

source_B1.c:20:1: error: ‘for’ loop initial declarations are only allowed in C99 mode

for(int i=1; i<=n; i++)

^

source_B1.c:20:1: note: use option -std=c99 or -std=gnu99 to compile your code

3 Błąd kompilacji 0/1000 0/32 0/2 source_B1.c: In function ‘main’:

source_B1.c:20:1: error: ‘for’ loop initial declarations are only allowed in C99 mode

for(int i=1; i<=n; i++)

^

source_B1.c:20:1: note: use option -std=c99 or -std=gnu99 to compile your code

Sprawdzarka nie kompiluje w standarcie c99; Wywal deklaracje przed pętle. - lion137 2019-05-14 20:48

Pozostało 580 znaków

2019-05-14 20:54
0

co i gdzie wywalic bo nie chce niczego zepsuc

Pozostało 580 znaków

2019-05-14 20:55
0

Deklaracje licznika i

Pozostało 580 znaków

2019-05-14 20:56
0
#include "stdio.h"

int main()
{

int n;
scanf("%d", &n);
int rok;
int przestepny(int n)
{
return ((n % 4 == 0) && (n % 100 != 0)) || (n % 400 == 0);
}
int i = 0;
for(i=1; i<=n; i++)
    {
        //printf("podaj rok \n");
        scanf("%d", &rok);
        if (przestepny(rok)){
printf("%d - rok przestepny\n",rok );
}
else {
printf("%d - rok normalny\n", rok);
}

    }
return 0;
}

edytowany 1x, ostatnio: lion137, 2019-05-14 20:57

Pozostało 580 znaków

2019-05-14 21:00
0

Po tym pokazuje
source_B1.c: In function ‘main’:

source_B1.c:22:9: error: redefinition of ‘i’

for(int i=1; i<=n; i++)

^

source_B1.c:21:6: note: previous definition of ‘i’ was here

int i=0;

^

source_B1.c:22:1: error: ‘for’ loop initial declarations are only allowed in C99 mode

for(int i=1; i<=n; i++)

^

source_B1.c:22:1: note: use option -std=c99 or -std=gnu99 to compile your code

Znowu MAsz: for(int i=1; i<=n; i++), a ma być: for(i=1; i<=n; i++) - lion137 2019-05-14 21:02

Pozostało 580 znaków

2019-05-14 21:02
0

dobra działa, wrzuciłam to samo trzy razy i dwa razy był bład a za trzecim przeszło, dzięki za pomoc

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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