2017-01-21 4 views
-10

Ich brauche ein Programm zu schreiben, das die Statistiken von n League A Fußballmannschaften liest und druckt den Namen Teams, dieWie behebe ich einen Fehler in meiner Hausaufgabenlösung in C++?

Ein Team fällt in der Liga B in Liga B fallen, wenn sie weniger als k Punkte haben nach M wochen gespielt haben, wobei m zwischen 1 und 150 liegt. Jede Mannschaft erhält drei Punkte für einen Sieg, einen Punkt für ein Unentschieden und null Punkte, wenn sie verloren sind.

Eingabe-Spezifikation: In der ersten Zeile wird die Anzahl der Teams 0 < n ≤ 500 und die Punkte 0 < k ≤ 300 benötigt, um in Liga A zu bleiben. Dann in den folgenden n Zeilen wird es sein der Name des Teams und seine Ergebnisse. Semikolon zeigt das Ende der Eingabeserie an.

Nummer 2 steht für Gewinn, Nummer eins steht für Draw und Nummer Null für Verlust.

Ausgabespezifikation:

Sample Input I 
4 19 
Team_A 1 1 1 1 1 1 1 1 1 0 1 1 1 0 2 1 0 ; 

Team_B 0 1 0 2 2 1 1 0 1 1 0 2 0 1 0 0 2 ; 

Team_C 0 0 1 0 2 2 2 1 1 1 1 1 0 0 2 1 2 ; 

Team_D 0 1 0 1 2 1 2 1 0 0 0 2 2 2 0 0 0 ; 

Sample Output I 

Team_A 16 

Team_B 18 

Dies ist der Code kam ich mit, aber die Ausgabe ist falsch und ich weiß nicht, warum,

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 

int main() 
{ 
    int n,points,sum=0,i,value; 
    char name[15]; 
    char p; 
    scanf("%d %d",&n,&points); 
    for(i=1;i<=n;i++) 
    { 
    scanf("%s",&name); 

    do 
    { 

    scanf("%c ",&p); 
    if(p!=';') 
    { 
     value=p-48; 
     sum=sum+value; 
    } 


    }while(p!=';'); 

    if(sum<=points) 
     printf("%s %d",name,sum); 
    } 
    return 0; 
    } 
+1

Bitte korrigieren Sie den Titel und die Einrückung. –

+0

Ausgabespezifikation: Zeigen Sie die Teamnamen und ihre Punkte, die in Liga B fallen. – Alisa

+1

Definieren Sie dann genau, welche Ausgaben Sie erwarten, welche Ausgaben Sie stattdessen bekommen und was Sie denken, dass das Problem sein könnte. Machen Sie es so, dass diese Frage anderen in Zukunft zugute kommen kann, nicht nur Ihnen. Dies ist ein Q & A, kein Helpdesk! –

Antwort

0

Sie für Probleme aussehen könnte indem Sie das Programm mit Ausgabeanweisungen füllen.
Wenn Sie nach scanf("%c ",&p); eine Ausgabeanweisung hinzufügen, um den Wert p anzuzeigen, werden Sie feststellen, dass der erste Wert für p ein Leerzeichen ist, das Ihre Berechnung verdirbt.
Auf die gleiche Weise, wenn Sie den Wert von value verfolgen, werden Sie feststellen, dass Sie vergessen haben, diese Variable für jedes Team auf Null zu initialisieren.

Verwandte Themen