Informatică, întrebare adresată de feherdarius, 9 ani în urmă

Nu imi iese aceasta problema.

Gigel în timp ce așteptă să meargă la doctor se joacă cu noul lui telefon. A observat ca atunci când este pe ecranul de start și apasă pe o tastă numerică se aude o notă muzicală.
Dar lui i-a venit ideea să codeze fiecare notă muzicală în acest mod:
Nota do1 cu numărul 0
Nota re cu numărul 1
Nota mi cu numărul 2
Nota fa cu numărul 3
Nota sol cu numărul 4
Nota la cu numărul 5
Nota si cu numărul 6
Nota do2 cu numărul 7

El creează un cântec, ia notele muzicale și le codează ca mai sus, le adună, iar apoi împarte suma la 8 și restul rămas este nota maximă.
Cerință
Ajutați-l pe Gigel sa afle nota maximă!
Date de intrare
Fișierul de intrare muzical.in conține pe prima linie numărul n și pe a doua linie n note muzicale.
Date de ieșire
Fișierul de ieșire muzical.out conține pe prima linie nota maximă.

Exemplu
Intrare
8
do1 re mi fa sol la si do2
Ieșire
sol

Răspunsuri la întrebare

Răspuns de ionutg38
5
#include <stdio.h>
#include <cstring>
using namespace std;
FILE *f=fopen("muzical.in","r");
FILE *g=fopen("muzical.out","w");
int n,c;
char s[4];
int main()
{
    fscanf(f,"%d",&n);
    for(int i=1;i<=n;i++)
    {
        fscanf(f,"%s ",s);
        if(strcmp(s,"re")==0)
            c=c+1;
        if(strcmp(s,"mi")==0)
            c=c+2;
        if(strcmp(s,"fa")==0)
            c=c+3;
        if(strcmp(s,"so")==0)
            c=c+4;
        if(strcmp(s,"la")==0)
            c=c+5;
        if(strcmp(s,"si")==0)
            c=c+6;
        if(strcmp(s,"do2")==0)
            c=c+7;
    }
    switch(c%8)
    {
        case 0: fprintf(g,"%s","do1");break;
        case 1: fprintf(g,"%s","re");break;
        case 2: fprintf(g,"%s","mi");break;
        case 3: fprintf(g,"%s","fa");break;
        case 4: fprintf(g,"%s","so");break;
        case 5: fprintf(g,"%s","la");break;
        case 6: fprintf(g,"%s","si");break;
        case 7: fprintf(g,"%s","do2");break;
    }
    return 0;
}
Alte întrebări interesante