Problém se standardním vstupem v C

Boss3456

Problém se standardním vstupem v C
« kdy: 11. 04. 2010, 14:41:42 »
Zdravím, nemohl byste mi někdo prosím poradit, kde dělám chybu? Mám dvě datové struktury TGraf a THrana. Jedná se reprezentaci datove struktura graf. V se struktuře TGraf je počet uzlů a hran (závislostí mezi uzly, jedná se orientovaný graf) a pointer hran. Ve struktuře THrana je poté odkud vedou jednotlivé hrany (z kterého uzlu do kterého) a cena hrany. Bohužel nějak nevím jak do těch struktur načíst data. Mám to udělané takhle, ale nefunguje to, nevíte co dělám špatně?? Ty struktury jsou určitě dobře, ale nějak nevím co s tím vstupem.

#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>




int _tmain(int argc, _TCHAR* argv[])

{
  struct THrana {
     int pv;         // číslo počátečního vrcholu hrany
     int kv;         // číslo koncového vrcholu hrany
     int cena;       // cena hrany

};

struct TGraf {
     int nvrch;         // počet vrcholů grafu
     int nhran;         // počet hran grafu
     THrana *phran;     // pointer (pole) hran

};   

          // vstup do struktur
            puts("Zadejte pocet uzlu grafu");
            scanf("%pv ", &TGraf.pv);
         puts("Zadejte pocet hran grafu");
            scanf("%pv ", &TGraf.pv);
             //jednotlivé závislosti mezi hranami
         for(int w = 1; w <= TGraf.nhran; w++);{

            puts("Zadejte cislo pocatecniho vrcholu grafu");
            scanf("%pv ", &THrana.pv);
            puts("Zadejte cislo koncoveho vrcholu grafu");
            scanf("%pv ", &THrana.kv);
            puts("Zadejte cenu hrany");
         scanf("%pv ", &THrana.cena);
         }
   return 0;
}

« Poslední změna: 11. 04. 2010, 14:50:16 od Petr Krčmář »


eXtreeme

Re: Problém se standardním vstupem v C
« Odpověď #1 kdy: 11. 04. 2010, 16:10:07 »
Problem neni na strane standardniho vstupu, ale na strane studenta.

Viz.: Demonstracni reseni

Kód: [Vybrat]
/******************************************************************************
 * DEMONSTRACNI RESENI UKOLU PRO UZIVATELE BOSS3456
 *
 * Jedna se pouze o demonstraci reseni, autor si NEPREJE aby jeho cast
 * kodu byla odevzdana jako domaci ukol. V pripade, ze uzivatel tento kod
 * odevzda, muze byt obvinen z plagiatorstvi.
 *
 * Vypracoval solidarni student FIT VUT Brno
 ******************************************************************************/

#include <stdlib.h>
#include <stdio.h>

struct THrana {
    int pv;               // číslo počátečního vrcholu hrany
    int kv;               // číslo koncového vrcholu hrany
    int cena;             // cena hrany
};

struct TGraf {
    int nvrch;            // počet vrcholů grafu
    int nhran;            // počet hran grafu
    struct THrana *phran; // pointer (pole) hran
};

int main(int argc, char* argv[]) {
    struct TGraf graf;
   
    printf("Zadejte pocet uzlu grafu: ");
    scanf("%i", &graf.nvrch);
    printf("Zadejte pocet hran grafu: ");
    scanf("%i", &graf.nhran);

    graf.phran = (struct THrana *)malloc(graf.nhran*sizeof(struct THrana));

    //jednotlivé závislosti mezi hranami
    for(int i=0; i<graf.nhran; i++) {
        printf("Zadejte cislo pocatecniho vrcholu grafu: ");
        scanf("%i", &(graf.phran[i].pv));
        printf("Zadejte cislo koncoveho vrcholu grafu: ");
        scanf("%i", &(graf.phran[i].kv));
        printf("Zadejte cenu hrany: ");
        scanf("%i", &(graf.phran[i].cena));
    }

    printf("\n\n ==================== GRAF ====================\n");
    for(int i=0; i<graf.nhran; i++) {
        printf("%d] Pocatecni vrchol: %d; Koncovy vrchol: %d; Cena: %d\n", i+1, graf.phran[i].pv, graf.phran[i].kv, graf.phran[i].cena);
    }
   
    free(graf.phran);

    return EXIT_SUCCESS;
}

Boss3456

Re: Problém se standardním vstupem v C
« Odpověď #2 kdy: 14. 04. 2010, 17:24:11 »
Děkuji za radu, ale už jsem to vyřešil. I tak díky moc.