Pereiti prie turinio

rEEwas

Patvirtinti nariai
  • Pranešimai

    7
  • Užsiregistravo

  • Lankėsi

  • Atsiliepimai

    0%

rEEwas Pranešimai

  1. Masyvo masyvui priskirt negalima, t.y.

    int A[5] = {1, 2, 3, 4, 5};
    int B[5] = {6, 7, 8, 9, 10};
    A = B // Apsispjaudom errorais
    

    Naudoji vardams string ir nematai vargo. O pagal tai, kaip darai, tai rikiuoji gerai, nes kaip suprantu pvz cat[0] atitinka pirmos grupes duomenis, o ne kazkuri konkretu dalyvi.

    Tai string'as man tiktu jeigu vardų būtų tik vienas ar du, bet jeigu vardą sudarytų nuo 2 iki 5 žodžiu? Nes kiek žinau, tai string nuskaito, šiuo atveju vardą, iki tarpo, ar ne?

  2. Sveiki,

     

    Darydamas 2009 informatikos VBE 2 užduotį - "Varžybos" susidūriau viena problema.

    Grupėse bėgikų laikus išrikiuoju gerai, bet man išrikiuoja tik bėgikų laikus, o bandydamas išrikiuoti ir vardus man rodo, kad yra klaida ([Error] invalid array assignment).

     

    Gal kas nors žinote kitą būdą, kaip išrikiuoti laikus kartu su vardais?

     

     

    Štai ta mano programa -

     

    #include <fstream>
    using namespace std;
    /* duomenu/ruzeultatu failai */
    const char CDfv[] = "duom.txt";
    const char CRfv[] = "rez.txt";
    
    /* Globalus kintamieji */
    typedef char kvardas[21];
    int n;
    int k[50];
    int up;			//laiko rikiavimui pagalbinis kintamasis
    char up2[21];		//vardu rikiavimui pagalbinis rikiavimas
    int kki[50];
    
    struct katinai {
    kvardas kv[50];  	//katino vardas
    int min[50];		//minutes per kiek atbego
    int sec[50];  		//sekundes per kiek atbego
    int laik[50];     	//laikas sekundemis per kiek atbego
    }cat[100];
    
    void skaitymas ();
    void rikiavimas ();
    void spausdinti ();
    
    /* Pagrindine funkcija */
    int main (){
    skaitymas ();
    rikiavimas ();	
    spausdinti ();
    return 0;    
    }
    
    /* Proceduros */
    void skaitymas () {
    ifstream duom (CDfv);
    duom>>n;
    for (int i=0; i<n; i++) {
    	duom>>k[i];
    	duom.ignore ();
    	for (int j=0; j<k[i]; j++) {
    		duom.get (cat[i].kv[j], 20);
    		duom>>cat[i].min[j]>>cat[i].sec[j];
    		cat[i].laik[j] = cat[i].min[j] * 60 + cat[i].sec[j];
    		duom.ignore ();	     		
    	}
    	kki[i] = k[i] / 2;
    }
    duom.close ();     
    }
    
    void rikiavimas () {
    for (int i=0; i<n; i++) {
    	for (int j=0; j<k[i]; j++) {
    		for (int p=0; p<k[i]; p++) {
    			if (cat[i].laik[j] < cat[i].laik[p]) {
    				up = cat[i].laik[p];			//
    				cat[i].laik[p] = cat[i].laik[j];	// isrikiuoja laikus
    				cat[i].laik[j] = up;  			//
    
    				up2 = cat[i].kv[p];			//
    				cat[i].kv[p] = cat[i].kv[j];		//pagal mane taip turetu isrikiuoti vardus                                  
    				cat[i].kv[j] = up2;			//
    			}       
    		}    	
    	}
    }     
    }
    
    void spausdinti () {
    ofstream rez (CRfv);
    for (int i=0; i<n; i++) {
    	for (int j=0; j<kki[i]; j++) {
    		rez<<cat[i].kv[j]<<cat[i].laik[j]/60<<" "<<cat[i].laik[j]%60<<endl;   
    	}  
    }      
    rez.close ();
    }
    

     

    Duomenų failas -

    http://img197.imageshack.us/img197/5565/96575557.png

     

    Pridedu ir šią programą su visais reikalingais failais.

    Varzybos.rar

×
×
  • Pasirinkite naujai kuriamo turinio tipą...