Megválaszolatlan hozzászólások | Aktív témák Pontos idő: csüt. máj. 23, 2024 19:15



Hozzászólás a témához  [ 1 hozzászólás ] 
c/c++ programozási kérdés. 
Szerző Üzenet
ezüst tag
Avatar

Csatlakozott: hétf. máj. 03, 2004 19:20
Hozzászólások: 41
Tartózkodási hely: Szeged
Hozzászólás c/c++ programozási kérdés.
Az egyetemen kaptam egy kötelező programot, de kifogott rajtam, vagy csak nem értem a kérdést...

De ez már mind1, mert lejárt a határidő...

De érdekelne a hiba oka...
a feladat:

Kód:
Egy raktárból konténereket kell elszállítani kamionokkal. A konténerek egy sorban egymás után helyezkednek el.
Minden konténer súlyát ismerjük, ezek sorrendben s1; s2; : : : ; sn. Összesen k kamion használható a szállításra.
Minden kamionra csak a sorban egymást követo konténerek pakolhatók. Azt szeretnék elérni, hogy a leheto
legegyenletesebb legyen a kamionok terhelése, ami azt jelenti, hogy a legkevésbé terhelt kamion terhelése a leheto
legnagyobb legyen. A kamionok súlykapacitása legalább akkora, hogy mindegyik biztosan elbírja a rárakandó
konténerek súlyát. Kikötés továbbá, hogy minden kamionra legalább egy konténert kell rakni.
Írjon olyan programot, amely kiszámít egy legegyenletesebb pakolást!

Bemeneti specifikáció
A be.txt szöveges állomány elso sora két egész számot tartalmaz, az elso szám n (10 <= n <= 10000) a konténerek
száma, a második szám k (3 <= k <= 100; k <= n) a kamionok száma. A második sor pontosan n pozitív egész
számot tartalmaz, a konténerek súlyait. Az i-edik szám a sorban i-edik konténer súlya, ami nem nagyobb, mint
10000.

Kimeneti specifikáció
A ki.txt szöveges állomány elso sorába egyetlen számot, a legegyenletesebb terhelésre vonatkozó minimálisan
terhelt kamion terhelését kell írni! A második sor pontosan k számot tartalmazzon. Az i-edik szám annak a
konténernek a sorszáma legyen, amelyiktol kezdodo konténereket az i-edik kamionra kell pakolni. Több megoldás
esetén bármelyik megadható.

Példa bemenet és kimenet

be.txt

12 4
4 6 1 5 1 4 4 1 4 2 7 3

ki.txt

10
1 4 7 11

Idolimit: 0.8 mp
Memórialimit: 32 Mb


A forráskódom, amit erre írtam:

Kód:
#include <iostream>
#include <fstream>
using namespace std;


int main(){
    ifstream inp("be.txt");
    ofstream out("ki.txt");
   
    int kontener,kamion,i,ossztomeg,l;
    inp>>kontener;
    int tomegek[kontener-1];
    inp>>kamion;
    int rakomany[kamion-1],u;
    u=1;
    ossztomeg=0;
    for (i=0;i<kontener;i++){
        inp>>tomegek[i];
   
    }
    for(i=0;i<kontener;i++){
                     
       ossztomeg=ossztomeg+tomegek[i];                 
    }
    float atlag;
    atlag=float(ossztomeg)/float(kamion);
    int fuvar[kamion-1],tempszumtomeg,w,t,p[kamion-1],o;
    w=0;
    o=0;
    rakomany[0]=1;
    for (t=0;t<kamion-1;t++){
        for (tempszumtomeg=0;tempszumtomeg<atlag+1;tempszumtomeg+=tomegek[w]){
            w++;
        }
        p[o]=tempszumtomeg-tomegek[w];
        o++;
        w--;
        rakomany[u]=w+2;
        u++;
       
    }
    int q=kamion-1;
    p[kamion-1]=-1;
    for (i=rakomany[kamion-1];i<kontener;i++){
        p[kamion-1]=p[kamion-1]+rakomany[q];q--;
        }

for(i=0;i<kamion-1;i++){
    int j,k;
    j=p[i];
    k=p[i+1];
    if (j<k){l=j;}
    else{l=k;}
}
 
   
   
   
    out<<l<<" \n";
    for(i=0;i<kamion;i++){out<<rakomany[i]<<" ";}
   
    inp.close();
    out.close();

}


A példában megadott feladatot teljesíti, de beadáskor 0 pontos lett, mivel elméletileg nem megfelelő a megoldás, amit ad.

Ha valaki tudja, mit szúrtam el az segíthetne :)


csüt. nov. 06, 2008 20:57
Profil Privát üzenet küldése
Hozzászólások megjelenítése:  Rendezés  
Hozzászólás a témához   [ 1 hozzászólás ] 

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég


Nem nyithatsz témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Magyar fordítás © Magyar phpBB Közösség