Keresés

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

  • gygabor88

    tag

    válasz Dirty_Pio #804 üzenetére

    Most pici jobban ránéztem a kódra. A fordító azért is szólni fog, amit fentebb írtam. Nem az a lényeg, hogy %i vagy %d, hanem, hogy kell a printf-nek következő paraméter is. Az is probléma viszont, hogy pár dolgot elírtál, pl printf helyett pritnf -t írtál, printstudents nevű függvényed pedig nincs, szintén elírás miatt, emiatt nem találja ezeket a függvényeket. Strcpy-t sem fogja felismerni, mert nincs betolva a megfelelő header fájl. Így már megeszi a fordító:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define MAXST 20
    #define MAXNL 50
    struct student {
    char *name;
    float mark;
    } ;
    int getname(char *p)
    {
    int i=0;
    char *q,c;
    q=p;
    while ( (c=getchar()!='\n') && i<MAXNL)
    {
    q[i]=c;
    i++;
    }
    q[i]='\0';
    return (i);
    }
    void read_student ( struct student a[], int n)
    {
    char *p;
    int i,e;
    p=malloc(sizeof(char)*MAXST);
    for (i=0;i<n;i++)
    {
    printf("\n the %d th student is:",i);
    e=getname(p);
    a[i].name=malloc(e*sizeof(char));
    strcpy(a[i].name,p);
    printf("\n mark for %s :",a[i].name);
    scanf("%f",&a[i].mark);
    }
    free(p);
    }
    void printstudents(struct student a[], int n)
    {
    int i;
    struct student *p;
    p=a;
    for (i=0;i<n;i++)
    printf("%s\n",a[i].name);
    }

    int main(void){
    struct student a[MAXST];
    int nstdnt;
    printf("students nr is:");
    scanf("%i",&nstdnt);
    read_student(a,nstdnt);
    printstudents(a,nstdnt);
    return(0);
    }

    [ Szerkesztve ]

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