[C++] Przekazywanie tablic i wartości między procedurami void
Ostatnio zmodyfikowano 2014-03-27 02:03
OczkoSX |
» 2014-03-26 19:14:17 Oczywiście w [] wpisywałeś indeks? |
|
Borowicz Temat założony przez niniejszego użytkownika |
» 2014-03-26 20:27:49 #include <iostream> #include <cstdlib> using namespace std;
void przykladowi_studenci(); void dodawanie(); void menu();
struct Student { int nr_indeksu; float ocena; };
int main() { menu(); }
void menu() { int nr_zad; int przelaczanie = 0; while( przelaczanie == 0 ) { cout << "Wybierz zadanie:" << endl; cout << "lista przykladowych studentow - 1" << endl; cout << "dodawanie studenta - 2" << endl; cout << "modyfikacja studenta - 3" << endl; cout << "wyswietlanie listy studetow - 4" << endl; cout << "koniec programu - 4" << endl; cin >> nr_zad; switch( nr_zad ) { case 1: { przykladowi_studenci(); } break; case 2: { dodawanie(); } break; default: cout << "Wybierz liczbe od 1 do 4" << endl; break; } } }
int liczba_wpisow = 3;
void przykladowi_studenci() { Student lista_studentow[ 10 ]; lista_studentow[ 0 ].nr_indeksu = 191414; lista_studentow[ 0 ].ocena = 3.5; lista_studentow[ 1 ].nr_indeksu = 191415; lista_studentow[ 1 ].ocena = 4.0; lista_studentow[ 2 ].nr_indeksu = 191416; lista_studentow[ 2 ].ocena = 4.5; cout << "NAZWISKO" << " " << "NR INDEKSU" << " " << "OCENA" << endl; for( int i = 0; i < liczba_wpisow; i++ ) { cout << lista_studentow[ i ].nr_indeksu << " | " << " | " << lista_studentow[ i ].ocena << " | " << i << endl; } }
void dodawanie() { Student lista_studentow[ 10 ]; liczba_wpisow = 3; cout << "Podaj indeks: "; cin >> lista_studentow[ liczba_wpisow ].nr_indeksu; cout << endl; cout << "Podaj ocene: "; cin >> lista_studentow[ liczba_wpisow ].ocena; cout << endl; if( lista_studentow[ liczba_wpisow ].ocena != 2.0 or lista_studentow[ liczba_wpisow ].ocena != 2.5 or lista_studentow[ liczba_wpisow ].ocena != 3.0 or lista_studentow[ liczba_wpisow ].ocena != 3.5 or lista_studentow[ liczba_wpisow ].ocena != 4.0 or lista_studentow[ liczba_wpisow ].ocena != 4.5 or lista_studentow[ liczba_wpisow ].ocena != 5.0 ) { cout << "Format oceny niepoprawny. Wpisz 1 z nastepujacych liczb: 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0: "; cin >> lista_studentow[ liczba_wpisow ].ocena; } }
Teraz się kompiluje. Ale dalej nie jest to, o co mi chodzi. |
|
OczkoSX |
» 2014-03-26 20:44:57 Przeanalizuj kod dokładnie. Mówiłem, usuń klamry z case. W niektórych miejscach ci brakuje pętel. Np. w dodawaniu, przypisujesz cały czas dane do obiektu lista_studentow[3], a nawet takowy nie istnieje. (są 0, 1 , 2). Zastanów się nad swoim kodem
|
|
michal11 |
» 2014-03-27 02:03:22 Może spróbuj sobie zdebudować ? I jak po jakiejś zmianie wyskakuje jeszcze więcej błędów to nie zawsze oznacza, ze coś jest gorzej. |
|
1 « 2 » |