[ Marko Simulak @ 24.11.2012. 18:06 ] @
Kako da ispisem STRING iz enum-a?
Code:

/*
 * Meseci.cpp
 * Nasumican odabir i ispis meseca
 *  Created on: Nov 24, 2012
 *      Author: ***
 */
#include <stdio.h>
#include <time.h>       //potrebno za srand
#include <stdlib.h>    //potrebno za rand

int main(){
    enum Mesec
    {
        JANUAR=1,FEBRUAR,MART,APRIL,MAJ,JUN,JULI,AVGUST,
        SEPEMBAR,OKTOBAR,NOVEMBAR,DECEMBAR
    };

    srand(time(NULL));          //random definisanje
    int x = (rand() % 12)+1;   //    brojeva  [1,12]

    Mesec m = Mesec(x);

    printf("%d\n",m);           //radnom mi ispisuje, ali kao int, kada stavim %s stavi mi upozorenje da mora biti char*..i nista ne ispise
    return 0;
}
[ X Files @ 24.11.2012. 18:40 ] @
enum ne uključuju u kod i STRING kao informaciju. To je samo za tebe olakšica pri programiranju. Ako želiš stringove, onda treba da ih ugradiš u kod, na primer ovako:

// na osnovu tvog koda, netestirano
Code:

// ...
char *meseci[]={"JANUAR","FEBRUAR","MART","APRIL","MAJ","JUN","JULI","AVGUST","SEPEMBAR","OKTOBAR","NOVEMBAR","DECEMBAR"};
// ...
printf("%s\n",meseci[m-1]);
// ...


Ali se tada pitamo, šta će nam enum u ovom primeru, kad indeksi već idu redom :)


[ Marko Simulak @ 24.11.2012. 18:53 ] @
Zadatak glasi >> Napisati program koji će nasumice odabrati mesec u godini, a zatim ga prikazati na ekranu. Koristiti
enumeraciju za predstavljanje meseca u godini.

Pa zbog tog "enumeraciju" pretpostavljam da treba da se koristi enum.

A kada zapisem tako sa char* .... radi ok, samo ne znam da li smem tako da uradim, provericu :D

Hvala
[ X Files @ 24.11.2012. 19:18 ] @
Citat:
Marko SimulakA kada zapisem tako sa char* .... radi ok, samo ne znam da li smem tako da uradim, provericu :D

Šalim se za enum :) Kapiram da "enum" trenutno proučavate i zato radite zadatke u vezi njega.

Ako ste radili recimo switch i case onda možeš da zaobiđeš char*, tako što ćeš u switch uhvatiti redni broj, a ispis servisirati preko case.

char* možeš da zaobiđeš i ovako:
char meseci[][12]={"JANUAR","FEBRUAR","MART","APRIL","MAJ","JUN","JULI","AVGUST","SEPEMBAR","OKTOBAR","NOVEMBAR","DECEMBAR"};
[ Marko Simulak @ 24.11.2012. 19:50 ] @
Hah :D, pa da..

Uradio sam na 2 nacina, jedan ce biti ispravan valjda :D

Code:

/*
 * Meseci.cpp
 *    Nasumican odabir i ispis meseca
 *  Created on: Nov 24, 2012
 *      Author: ***
 */
#include <stdio.h>
#include <time.h>       //potrebno za srand
#include <stdlib.h>    //potrebno za rand

int main(){
    enum Mesec
    {
        JANUAR=1,FEBRUAR,MART,APRIL,MAJ,JUN,JULI,AVGUST,
        SEPEMBAR,OKTOBAR,NOVEMBAR,DECEMBAR
    };

    srand(time(NULL));          //random definisanje
    int x = (rand() % 12)+1;   //    brojeva [1,12]

    Mesec m = Mesec(x);

    printf("%d\n",m);      //daje int

    //********************************

    char* mesec[]={"JANUAR","FEBRUAR","MART","APRIL","MAJ",
        "JUN","JULI","AVGUST","SEPEMBAR","OKTOBAR","NOVEMBAR",
        "DECEMBAR"};
    printf("%s\n",mesec[m-1]);

    //********************************

    switch (m)
    {
        case 1: printf("Januar");
            break;
        case 2: printf("Februar");
                    break;
        case 3: printf("Mart");
                    break;
        case 4: printf("April");
                    break;
        case 5: printf("Maj");
                    break;
        case 6: printf("Jun");
                    break;
        case 7: printf("Juli");
                    break;
        case 8: printf("Avgust");
                    break;
        case 9: printf("Septembar");
                    break;
        case 10: printf("Oktobar");
                    break;
        case 11: printf("Novembar");
                    break;
        case 12: printf("Decembar");
                    break;
    }

    return 0;
}