Keresés

Hirdetés

Új hozzászólás Aktív témák

  • Jester01

    veterán

    válasz Dirty_Pio #838 üzenetére

    1) Nem tudom, hogy az [ i ] indexeket a fórum nyelte-e be, de ha nem akkor hiányzanak ;)
    2) ha ragaszkodsz a bitmezőkhöz, az megbonyolítja a beolvasást. Én inkább kidobtam őket
    3) a switch-ben kimaradtak a case kulcsszavak.
    4) a default után is kell kettőspont, de a default: break konstrukciónak nincs sok értelme, olyan mintha ott sem lenne
    5) becsúszott egy bezáratlan kapcsos zárójel
    6) a %c formátum nem ugorja át a szóközt (whitespace) ilyenkor explicit kell egy szóköz
    7) a scanf-nek pointer kell, hiányzik egy pár & jel

    Ez itt patch, hogy jobban látszódjon a módosítás.

    --- t.c.orig 2009-03-11 22:10:54.000000000 +0100
    +++ t.c 2009-03-11 22:37:13.000000000 +0100
    @@ -7,15 +7,15 @@
    enum star_type tp;
    union star{
    struct mai{
    - unsigned char type:2;
    - unsigned char age:2;
    + unsigned char type;
    + unsigned char age;
    char color[11];
    }m;
    struct bin{
    float r1;
    float r2;
    - unsigned char t1:2;
    - unsigned char t2:2;
    + unsigned char t1;
    + unsigned char t2;
    }b;
    struct var{
    float lowlmn;
    @@ -32,37 +32,35 @@
    scanf("%d",&a);
    printf("How many stars?(max 10)\n");
    scanf("%d",&n);
    - for (i=0;i<n;i++){
    + for (i=0;i<n;i++)
    switch (a){
    - MA:
    - scanf("%50s",x.name);
    - x.tp=a;
    - scanf("%c %c %s",x.u.m.type, x.u.m.age, x.u.m.color);
    - break;
    - BIN:
    - scanf("%50s",x.name);
    - x.tp=a;
    - scanf("%f %f %c %c",x.u.b.r1,x.u.b.r2,x.u.b.t1,x.u.b.t2);
    - break;
    - VAR:
    - scanf("%50s",x.name);
    - x.tp=a;
    - scanf("%f %f %f",x.u.v.lowlmn,x.u.v.highlmn,x.u.v.period);
    + case MA:
    + scanf("%50s",x[i].name);
    + x[i].tp=a;
    + scanf(" %c %c %s",&x[i].u.m.type, &x[i].u.m.age, x[i].u.m.color);
    + break;
    + case BIN:
    + scanf("%50s",x[i].name);
    + x[i].tp=a;
    + scanf("%f %f %c %c",&x[i].u.b.r1,&x[i].u.b.r2,&x[i].u.b.t1,&x[i].u.b.t2);
    + break;
    + case VAR:
    + scanf("%50s",x[i].name);
    + x[i].tp=a;
    + scanf("%f %f %f",&x[i].u.v.lowlmn,&x[i].u.v.highlmn,&x[i].u.v.period);
    break;
    - default break;
    };
    for (i=0;i<n;i++)
    - switch (x.tp){
    - MA:
    - printf("%c %c %s\n",x.u.m.type, x.u.m.age, x.u.m.color);
    + switch (x[i].tp){
    + case MA:
    + printf("%c %c %s\n",x[i].u.m.type, x[i].u.m.age, x[i].u.m.color);
    break;
    - BIN:
    - printf("%f %f %c %c\n",x.u.b.r1,x.u.b.r2,x.u.b.t1,x.u.b.t2);
    + case BIN:
    + printf("%f %f %c %c\n",x[i].u.b.r1,x[i].u.b.r2,x[i].u.b.t1,x[i].u.b.t2);
    break;
    - VAR:
    - printff("%f %f %f\n",x.u.v.lowlmn,x.u.v.highlmn,x.u.v.period);
    + case VAR:
    + printf("%f %f %f\n",x[i].u.v.lowlmn,x[i].u.v.highlmn,x[i].u.v.period);
    break;
    - default break;
    };
    system("pause");
    return(0);

    Jester

Új hozzászólás Aktív témák