Ajutor problema in C


  1. #1
    Fan Stiinta deardeavil's Avatar deardeavil reprezinta o cantitate neglijabila
    Data de inscriere
    17-10-2006
    Locaţie
    In ceruri
    Varsta
    33
    Sex
    M
    Mesaje
    639
    Mesaje bazar
    14
    Putere Reputatie
    39
    Reputatie
    10
    Puncte CF
    20.0
    Usergroups:

    Ajutor problema in C

    SAlut, am si eu o problema
    De pe mediul de intrare se citeste o lista a studentilor unei grupe si a notelor obtinute de fiecare la un examen, informatii cu care se creeaza un tablou cu componente inregistrari. La introducerea datelor, fiecarui nume I se rezerva primele 20 de caractere din linie, numele mai scurte fiind completate pana la 20 cu spatii libere. O linie se termina cu nota studentului. Lista este terminata printr-o linie vida. pot fi maximum 30 de studenti. Sa se scrie un program care: a) Stabileste numarul de studenti prezenti la examen. b) Face statistica repartitiei notelor pe studenti sub forma: | Nota | Numar studenti| c) Afiseaza listele cu studentii care au obtinut aceeasi nota.
    problema am gasit-o rezolvata

    #include<stdio.h>
    #include<conio.h>
    typedef char sir[21];
    struct student {sir nume;
    int nota;};
    student x[30];
    sir s;
    char c,d;
    int i,j,n,nr;
    void main(void)
    {
    n=0;
    for(i=0;i<30;i++)
    {scanf("%20s%d",x[n].nume,&x[n].nota);
    n++;
    c=getchar();
    d=getchar();
    if((c=='\n')&&(d=='\n')) break;
    else ungetc(c, stdin);
    }
    printf("\nNumarul de studenti prezenti la examen este: %d",n);
    printf("\n ___________________");
    printf("\n|Nota|Numar studenti|");
    printf("\n|____|______________|");
    for(j=1;j<=10;j++)
    {nr=0;
    for(i=0;i<n;i++)
    if(x[i].nota==j)
    nr++;
    if(j<10)
    printf("\n| ");
    else
    printf("\n| ");
    printf("%d | %d |",j,nr);
    }

    for(j=1;j<=10;j++)
    {nr=0;
    printf("\nStudentii care au obtinut nota %d :",j);
    for(i=0;i<n;i++)
    if(x[i].nota==j)
    {nr++;
    printf("\n%s",x[i].nume);
    }
    if(nr==0)
    printf(" nu sunt\n");
    }

    getch();
    }



    Dar daca dau sa o compileze imi apare fereasta alba.... va rog daca aveti unul timp sa va uitati peste problema
    my Siqnature -->

  2. #2
    Member alex707's Avatar alex707 reprezinta o cantitate neglijabila
    Data de inscriere
    28-09-2006
    Varsta
    43
    Sex
    M
    Mesaje
    183
    Mesaje bazar
    63
    Putere Reputatie
    0
    Reputatie
    8
    Puncte CF
    30.0
    Programelul merge, nu stiu in ce IDE lucrezi tu si de ce zici ca nu merge. In afara de probleme de detaliu cum ar fi sa nu fie la input (pe primul scanf) note peste 10 nu e nimic in neregula cu programelul. Mai face o mica problema daca pui numele dintr-un singur caracter, dar e neglijabila pentru ce e de facut in problema.

    P.S.: Acum am citit ca de fapt ai gasit programul gata facut. Programul e facut destul de elegant si initial mi s-a parut bizar ca ai scris programul asta dar nu stii sa il folosesti, dar acum pricep. Poate ca ar trebui sa il faci tu ca sa si intelegi ce se intampla acolo. Doar un sfat ...
    Last edited by alex707; 13-12-2010 at 20:16.
    Success is not final, failure is not fatal: it is the courage to continue that counts. --Sir Winston Churchill
    Vrei mai putine reclame? Inregistreaza-te sau logheaza-te

Tags for this Thread

Google+

Cautati logo-ul CraiovaForum?

Iata cateva variante: