Do-while döngü programında yardıma mı ihtiyacınız var? (C ++)

Kullanıcı girişlerini (işaretleri) alacak ve bu notların ortalamasını bir harf notuna çıkaracak bir program oluşturmaya çalışıyorum. Programın ortalama başarı oranını hesaplamayı başardığına inanıyorum, ancak doğru harf notunu çıkarmayacak mıyım?

Herhangi bir öneri? DÜZENLEME: Belki de hesaplamalarda bir şeydir, çünkü çıktım her zaman yüzdesini "F" notu olarak verir.

// Used iomanip to display averages for possible three digit or greater answers.
#include 
#include 
using namespace std;

// Set up my program using only main()
int main()
{
    //Created the variable 'mark' so the user input can be stored and tested in the do-while condition.
    //Variable 'sum' and 'average' to calculate mark and then be tested against letter grades.
    //'counter' used to keep track of number of terms being averaged.
    double mark=0, sum=0, average=0;
    int counter=-1;

   //Do-while statement to test the loop. Gets input from user, and tests whether it is a a valid letter grade.
   //Marks below 0 or above 100 will test true and loop back re-promting the user for another mark.
   //If tested condition is false, then if statements then test the mark and output the letter grade.

    cout << "Please enter marks to calculate average, and enter -1 to stop and find letter equivalence. " << endl;

    do
    {
        if ( mark < 0 || mark > 100 )
        {
            cout << "Entered mark is invalid. Please try again, or enter -1 to stop and find letter equivalence. " << endl;
            break;
        }

        sum = sum + mark;
        counter++;
        cin >> mark;

    }
    while ( mark != -1 );

    average = sum/counter ;

    //What happens when above statement is false...
    if (mark >= 90)
        {
            cout << "The average of "<=80)
        {
            cout << "The average of "<=70)
        {
            cout << "The average of "<=60)
        {
            cout << "The average of "<=50)
        {
            cout << "The average of "<
0
Sorun nedir?
katma yazar jman, kaynak

3 cevap

Göz önünde bulundurulması gereken birkaç şey:

  1. Notlarınız, ortalama ve işaretleri olarak düşünülmemelidir. İşaretler kullanırsanız, son girdiğiniz süre -1 olan do while while döngüsünden çıkmak için kullanılır ve bu da her zaman F notu ile sonuçlanır.

  2. do-while döngüsünden sonra cout ifadelerinize endl ekleyin. Çıkış akışı arabelleğe alınmış olabilir ve bu, cout ifadelerinin monitörünüzde görünmemesine neden olabilir. endl çıktı akışını akıtacak.

For eg.
cout << "The average of "<

1
katma
Bana ödev gibi geliyor. Kodu vermem. Düzenleyiciniz hata ayıklamayı destekliyorsa, kodunuzun üzerine geçin ve değişkenleri dikkatli bir şekilde izleyin. Aksi halde, yanlış gittiğinizi görmek için hata ayıklama ifadeleri ekleyin.
katma yazar srikfreak, kaynak
Önerilerinizin bir kısmı için, ortalama hesaplama yaptığım do-while döngüsünden sonra bunu nasıl başarabilirim? Bunu derleyicide denedim ve sonuç çıktı değil miydi ?! Teşekkürler
katma yazar Zinidine Zidane, kaynak
Hata ayıklayıcısına yeniyim, ama birkaç deneme yaptıktan sonra bunu yapmayı başardım ve zahmetli hatamı farkettim D: Sabrınız için teşekkür ederim, gerçekten takdir ediyorum!
katma yazar Zinidine Zidane, kaynak

Döngünün sonunda işareti her zaman -1 olur. Bu nedenle, tüm sınamalar başarısız olur, else yan tümcesine düşersiniz ve bir F çıkışı çıkarsınız. Düzeltme ortalama değil işaretini test etmektir.

0
katma
Hayır, ise / ise ise ortalamayı veren ağaç.
katma yazar David Schwartz, kaynak
Ortalamanızın hesaplaması benim döngümün dışında olduğunda ve bu nedenle test edilemediğinde ortalamaları nasıl test edebilirim?
katma yazar Zinidine Zidane, kaynak
Eğer// if eğer ağacın kullanıcı girişinin geçerli olup olmadığını belirlemek için varsa .... Kullanıcı eğer geçerli bir işareti koyduysa if deyimi test ediyor. Bunun yerine neden ortalama test edeceğimi bilmiyorum?
katma yazar Zinidine Zidane, kaynak
Öncelikle özür dilerim, ne demek istediğini biliyorum, çok saçma bir hata. Sabrınız için teşekkür ederim, gerçekten takdir ediyorum!
katma yazar Zinidine Zidane, kaynak

If ifadelerinizi tekrar kontrol edin. Her zaman doğru ortalamanın bir F'ye eşit olduğunu gördüğünüze dair bahis oynardım.

0
katma
Doğru ortalamımı her zaman 'F' olarak durdurmak için ne yapardınız? Ortalama hesaplamamın altındayken, ortalamalarımın, while ifademden sonra olması nedeniyle, ortalamaları nasıl karşılaştırdığımı bilmiyorum.
katma yazar Zinidine Zidane, kaynak