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

SPOJ - Pesel (błąd kompilacji)

0 głosów
1,517 wizyt
pytanie zadane 17 sierpnia 2016 w C i C++ przez Ostry Nowicjusz (150 p.)

Witam.
Napisałem program Pesel z polskiego SPOJ'a ( http://pl.spoj.com/problems/JPESEL/ ). Odpowiedzi są poprawne, ale jak wrzucam kod do sprawdzenia wyskakuje mi "błąd kompilacji". :/ Nie wie ktoś, co może być przyczyną? Przecież u mnie na komputerze się kompiluje.
Z góry dziękuję za odpowiedź. :) 

#include<iostream>
#include<cmath>

using namespace std;

int main()
{
	int t, wynik=0, suma=0; 
	long long pesel, d=10000000000, licznik, cyfry[12];
	
	cin>>t;
	
	while(t--)
	{
		cin>>pesel;
		
		for(int i=0; i<11; i++)
		{
			cyfry[i] = pesel/d;
			pesel = pesel%d;
			d=d/10;
			
			if(i==1||i==5||i==9)
			{
				licznik = cyfry[i];
				wynik = licznik*3;
			}
			else if(i==2||i==6)
				{
					licznik = cyfry[i];
					wynik = licznik*7;	
				}
			else if(i==3||i==7)
				{
					licznik = cyfry[i];
					wynik = licznik*9;
				}
			else
			{
				licznik = cyfry[i];
				wynik = licznik;
			}
			
			suma += wynik;
		}
		
		if(suma>0 && suma%10==0)	cout<<"D"<<endl;
		else	if(suma%10!=0) 	cout<<"N"<<endl;
		
		d=10000000000;
		wynik=0;
		suma=0;	
	}
	
	return 0;
}

 

komentarz 17 sierpnia 2016 przez niezalogowany
zawsze pokazuje co jest nie tak

2 odpowiedzi

0 głosów
odpowiedź 17 sierpnia 2016 przez MetRiko Nałogowiec (37,110 p.)
wybrane 18 sierpnia 2016 przez Ostry
 
Najlepsza
U mnie wszystko zalicza..
Może wybrałeś zły język.. spróbuj to: C++ (g++ 5.1)
komentarz 17 sierpnia 2016 przez MetRiko Nałogowiec (37,110 p.)

Dodam jeszcze od siebie, że możesz to zadanie zrobić prościej.. kto powiedział, że PESEL nie może być zapisany w stringu? Tylko wtedy aby otrzymać odpowiednią cyfrę (ze znaku) musisz odjąć znak '0'.. przykładowo:
string Pesel="12345678901";
Pesel[0]; //zwróci ci numer znaku ascii ('1') natomiast..
Pesel[0]-'0'; //zwróci liczbę 1

komentarz 17 sierpnia 2016 przez Kasztan Dyskutant (8,080 p.)
No proste ja bym nawet powiedział, że bardzo wskazany jest pesel jako string zobacz na input w przykładzie.
komentarz 17 sierpnia 2016 przez Kasztan Dyskutant (8,080 p.)
nie rób tylu ifów zadeklaruj sobie dodatkową tablice z tymi mnożnikami (zadeklaruj ją) i potem przeiteruj po niej. Przecież wiadomo z góry która cyfra ma być pomnożona przez jaki mnożnik.
komentarz 18 sierpnia 2016 przez Ostry Nowicjusz (150 p.)
Wcześniej zgłaszałem na C++(g++ 4.3.2) inne programy i działało... tym razem wystarczyło to zmienić. Dzięki za podpowiedzi co do poprawek kodu. ;)
0 głosów
odpowiedź 17 sierpnia 2016 przez TakIoKoder Bywalec (2,560 p.)
Cześć. Wystepuje bład error: integer constant is too large for 'long' type. spróbuj zmienic jawnie typ zmiennej d dodajac na koncu LL. d=10000000000LL w 9 i 50 lini kodu.

Podobne pytania

0 głosów
2 odpowiedzi 1,336 wizyt
pytanie zadane 28 września 2017 w C i C++ przez Reccon Nowicjusz (240 p.)
0 głosów
1 odpowiedź 824 wizyt
pytanie zadane 22 lutego 2023 w C i C++ przez alfutek Początkujący (360 p.)
0 głosów
1 odpowiedź 576 wizyt
pytanie zadane 1 listopada 2019 w C i C++ przez creend Gaduła (4,700 p.)

93,740 zapytań

142,675 odpowiedzi

323,294 komentarzy

63,319 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...