jak zrobic tablice skladajaca sie ze stringow ?

0

temat chyba mowi sam za siebie. chce sobie zrobic program obliczajacy srednia z podanych (w tablicy) przedmiotow. oto zrodlo:

#include<iostream.h>

int main () {
    double srednia;
    int ocena[13], i;
    char przedmiot[];
    
    char *przedmiot[0]="polski";
    char *przedmiot[1]="matematyka";
    char *przedmiot[2]="fizyka";
    char *przedmiot[3]="chemia";
    char *przedmiot[4]="historia";
    char *przedmiot[5]="geografia";
    char *przedmiot[6]="biologia";
    char *przedmiot[7]="informatyka";
    char *przedmiot[8]="w-f";
    char *przedmiot[9]="PO";
    char *przedmiot[10]="Wok";
    char *przedmiot[11]="Angielski";
    char *przedmiot[12]="Niemiecki";
    
    suma=0;
    
    for (i=0; i<=12; i++) {
        cout << przedmiot[i] << "        ";
        cin >> ocena[i];
        cout << "\n";
        suma+=ocena;
        }
    srednia=suma/13;
    
    cout << "\n\nSrednia ocen wynosi " << srednia;
    
    }
0

60-ilość pól 20-max długość

char przedmioty[60][20]= {"polski","matematyka","FIZYKA","biologia"};itd, itd...

PS>Raczej się nie pomyliłem, ale wszystko jest możliwe kiedy się pisze bez kompilatorka...

0

jezeli już takie rzeczy robisz to najlepiej wykorzystaj vektory, lub stworz wlasna klase string, i klase kontenera.

0

Krecik sie nie myli... Ale mozna tez tak...

char* przedmioty[]={"u pani brzydkiej","u pani ohydnej","u laluni", ... }

Przy deklaracji nie potrzeba uzupełniać liczby 'komórek' w [] - kompilator sobie sam policzy ile jest elementów. Ponadto znaczek* powoduje, że sam nie musisz podawać ilości pamięci rezerwowanej dla stringów - odpada następna para []. Nie są kopiowane dane przy tworzeniu tablicy.

0

bardzo dziekuje za odpowiedz :) teraz dziala.

0

a nie lepiej:
[code]string tablica[]={...};[/code]

0

"string" zadziala tylko z wykorzystaniem przestrzeni nazw - namespace. A w powyzszym przykladzie widzimy stary include <... .h> wiec to odpada.

0

"string" zadziala tylko z wykorzystaniem przestrzeni nazw - namespace. A w powyzszym przykladzie widzimy stary include <... .h> wiec to odpada.

specjalnie to sprawdzilem i wiesz co? mylisz sie!

0

Niech za komentarz powyzszego posluzy link :
http://www.binboy.org/forum/viewtopic.php?t=5241&highlight=string

0

nie zalezy to od przestrzeni nazw!

albo wpisujesz:
[code]#include <string.h>
string lancuch;
[/code]

albo

[code]
#include <string>
using namespace std;
string lancuch
[/code]

obie wersje dzialaja poprawnie!

0

obie wersje dzialaja poprawnie!

Gdize n programistów, tam 0x01<<n opini politycznych... O co sie klócicie? O to, że różne kompilatory mogą mieć różne dyrektywy?

#if defined(__USING_STD_NAMES__) && !defined(__STD_STRING)
#  include <string.stl>
#endif

Gdyby któremus chciało się zajrzeć do string.h

A tak btw. mozna oprócz stringa użyc mysql, bo w końcu przedmioty o jakas baza. Tylko po co?

// Snaj ja borlanda wyssałem z mlekiem matki, więc nie gadaj mi tu bzdur, że producent takiego szitu jak łinzgroza... :p Borland przynamniej zawsze trzyma klasę ;p A edytory służą do edycji, a programiści mają nie tylko nieśwaidomie uzywać bibliotek :-P

0

W normalnych kompilatorach (jedyny sluszny VC++ [diabel] ) nic nie jest wlaczane ani wylaczane bez mojej wiedzy.
Tak wiec bez jawnego dodania namespace daleko nie pojedziesz, a juz to co dodaje BCB czy inne do swoich headerow to inna sprawa (mam nadzieje nigdy nie uzywac tego szitu).

0

W normalnych kompilatorach (jedyny sluszny VC++ [diabel] ) nic nie jest wlaczane ani wylaczane bez mojej wiedzy.
Tak wiec bez jawnego dodania namespace daleko nie pojedziesz, a juz to co dodaje BCB czy inne do swoich headerow to inna sprawa (mam nadzieje nigdy nie uzywac tego szitu).

a widziales chociaz srodowisko Borlanda ze krytykujesz? wiesz jak dziala? jak bys wiedzial to nie gadalbys glupot. jezeli w vc++ nie da sie pisac bez przestrzeni nazw to jest niezgodny ze standardem. i jeszcze raz powtarzam! przestrzen nazw std, nie jest potrzebna aby napisac program w C++!

0

Stary najpierw pomysl potem pisz, bo brak slow na komentowanie Twoich glupot.

EOT - ja skonczylem flabra wyjasnil dlaczego w BCB to idzie z palcem w ..., a ja dlaczego na VC++ nie - i wszystko jasne. vixen przeczytaj to wszystko jeszcze raz i przekompiluj :-8

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