Potrzebna pomoc w znalezieniu błędu w kodzie

0

Mam taki wycinek kodu z mojego programu. Polega on na zamianie liczby typu int zapisanej w tablicy indeks[] na typ char zapisany w tablicy dane[][][]. I ogólnie chodzi o to, że dwie pierwsze cyfry liczby ładnie zamienia na char i wpisuje w tablice dane, a z następnymi zaczynają wyskakiwać jakieś losowe znaczki. Niestety, ale przez pare godzin nie udało mi się dojść przyczyny tej sytuacji. Dlatego proszę o pomoc.

                      ij=0;
                      b=0;
                      c=indeks[i];
                       do
                        {    
                         indeks[i]=indeks[i]/10;    
                           ij++;            
                        }while((indeks[i]*10)/10>=1);

                        for (ij;ij>0;ij--)
                        {    
                           indeks[i]=c;
                          for (j=0;j<ij-1;j++)
                             {
                                 indeks[i]=indeks[i]/10;
                            }
                         dane[0][b][0]=(char)indeks[i]%10;   
                        printf("\n%d = %c",indeks[i]%10,(dane[0][b][0])+48 );    // sprawdzanie, czy działa
                        b++;                                    
                        }        

             
0

Hmm, jakie typy mają "ij", "b" oraz "c"?
Z jakiegoś konkretnego powodu używasz tablicy 3D btw?

0

ij,b,c są typu integer;
Tablica jest 3 wymiarowa, bo wymaga tego zadanie.

0

Nie, tego nie może wymagać zadanie. To tobie się wydaje że tego wymaga zadanie ale z całą pewnością się mylisz.
Dopóki nie podasz deklaracji wszystkich użytych zmiennych to nie da rady tobie pomóc w naprawie.
Dopóki nie podasz treści zadania nie da rady tobie pomóc w naprawieniu podejścia.

0

Jak już mówiłem jest to tylko wycinek całego programu. Jak chcecie mogę go wkleić, ale to to jakieś 120 linii.

Spróbuje zmodyfikować ten wycinek , aby był on odrębnym programem , a nie tylko jego częścią.

Treść zadania brzmiała tak :

Napisz program, który wczytuje do tablicy imiona i nazwiska n studentów oraz ich miejsce zamieszkania,

a następnie drukuje zawartość tablicy na ekranie w trzech kolumnach. (n<10).

do tak przygotowanej listy studentów dodaj numer indeksu oraz srednia ocen z 3 przedmiotów:

char dane_studenta[2][10][20];

int indeks [10];

int srednia;;//wyliczana na podstawie wprowadzonych przez uzytkownika 3 ocen

wyswietl liste z dodatkowymi informacjami oraz znajdz studenta z najwyzsza srednia ocen.

0

Nie potrzebujesz nawet dwuwymiarowej tablicy.
Dane:

struct student { char imie[32],nazwisko[64],adres[128]; unsigned indeks; double srednia; } Tb[10];

Wczytywanie 1:

for(i=0;i<n;++i) scanf(" %31s %63s %127s",Tb[i].imie,Tb[i].nazwisko,Tb[i].adres[128]);

Wczytywanie 2:

for(i=0;i<n;++i) { scanf(" %u %f %f %f",&Tb[i].indeks,&a,&b,&c); Tb[i].srednia=(a+b+c)/3; }

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