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

problem z programem

Object Storage Arubacloud
0 głosów
292 wizyt
pytanie zadane 26 czerwca 2015 w C i C++ przez przemek930010 Nowicjusz (200 p.)
edycja 26 czerwca 2015 przez HaKIM

Witam mam taki problem z petlą for. Problem polega na tym ze zmienna testy po wykonaniu petli przybiera dziwna wartość i nie mam pojecia jak to sie dzieje.Co ciekawe zmienna zmienia wartosc po wykonaniu drugiej pętli for. Na dole wrzucam kod:

Zmienna testy ma na celu powtórzenie cześći programu. Z góry dziekuje za odpowiedź.
 


#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
 {
int testy;
cin>>testy;

 

int suma;
int ipesel[10];    
char pesel[10];
for(int a=0;a<=testy;a++)
{
    cout<<testy<<endl;
    cout<<a<<endl;

                for(int i=0;i<11;i++)
                {
                cin>>pesel[i];
                }
            
                    for(int i=0;i<11;i++)
                    {
                    ipesel[i]=(int)pesel[i]-'0';
                    }
            
            
            
            suma=ipesel[0]*1+ipesel[1]*3+ipesel[2]*7+ipesel[3]*9+ipesel[4]*1+
            ipesel[5]*3+ipesel[6]*7+ipesel[7]*9+ipesel[8]*1+ipesel[9]*3+ipesel[10]*1;
            
            cout<<suma<<endl;
            if((suma%10==0)&&(suma>0))
            cout<<"D"<<endl;
            else
            cout<<"N"<<endl;
            
            
            
            
}
            return 0;
            }

 

1 odpowiedź

+2 głosów
odpowiedź 26 czerwca 2015 przez Wookie Nowicjusz (180 p.)

Hej! Pesel ma 11 cyfr więc potrzebujesz tablic 11-elementowych(deklarując tablice w nawiasach kwadratowych wpisujemy liczbę elementów, czyli nie liczymy 0), czyli musisz zmienić:int ipesel[10] na int ipesel[11], podobnie char pesel[10] na char pesel[11].
Poza tym warunek pętli for(int a=0; a<=testy; a++) jest nieprawidłowy, musisz zmienić znak nierówności, dla np. testy=2 pętla wykonuje się 3 a nie 2 razy (1. pętla a=0,      2. pętla a=1,       3. pętla a=2)

Pozdrawiam! (to moja pierwsza odpowiedź na tym forum więc proszę o wyrozumiałość) 

Slight edge!

komentarz 26 czerwca 2015 przez przemek930010 Nowicjusz (200 p.)
Dzięki za odpowiedź. Z tego co wiem to w c++ numeruje sie od 0 wiec ipesel[10] posiada 11 miejsc
komentarz 26 czerwca 2015 przez Teneusz Gaduła (3,280 p.)
Tak, dlatego dla ipesel[10] masz od 0 do 9
komentarz 26 czerwca 2015 przez przemek930010 Nowicjusz (200 p.)
Tak czy siak najbardziej mnie zastanawia co dzieje sie ze zmienną testy, przyjmuje ona jakieś dziwne wartości.

Podobne pytania

0 głosów
0 odpowiedzi 317 wizyt
pytanie zadane 23 listopada 2019 w C i C++ przez Mavimix Dyskutant (8,390 p.)
0 głosów
4 odpowiedzi 3,021 wizyt
pytanie zadane 7 listopada 2017 w JavaScript przez jking Początkujący (350 p.)
0 głosów
1 odpowiedź 284 wizyt
pytanie zadane 23 lipca 2021 w C i C++ przez Bartusio445 Początkujący (290 p.)

92,582 zapytań

141,433 odpowiedzi

319,666 komentarzy

61,966 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...