Так недавно я начал изучать свой первый язык, C++, и я пишу свою собственную программу, чтобы получить некоторую практику. Чтобы вы знали, как далеко я продвигаюсь вперед, меня только что познакомили с заявлениями «если» и «еще если» в классе. Вот код:Beginner C++ Help: if statement in if statements
// Grade Calculator
#include<iostream>
#include<iomanip>
#include<cmath>
#include<string>
using namespace std;
int main()
{
float cutoffa, cutoffb, cutoffc, cutoffd, grade;
string firstname, lastname;
cout << setprecision(3) << fixed;
cout << "This program was made to test the \"if\" and \"else if\" statements.\n";
cout << "For this program you will be pretending to be a professor who is entering a student's grade.\n";
cout << "The first thing you will need to do is provide us with some basic information. Press enter when you are ready. \n";
cin.get();
cout << "What is the percent grade cut off (the lowest grade possible) for an A ? " ;
cin >> cutoffa;
cout << "What is the percent grade cut off for an B? " ;
cin >> cutoffb;
cout << "What is the percent grade cut off for an C? " ;
cin >> cutoffc;
cout << "What is the percent grade cut off for an D? " ;
cin >> cutoffd;
cout << "Enter the student's first name: ";
cin >> firstname;
cout << "Enter the student's last name: ";
cin >> lastname;
cout << "Enter the student's overall grade percentage: ";
cin >> grade;
if (grade >= cutoffa)
cout << firstname << " " << lastname << "'s Final Grade is " << grade << "%, which is an A! Congrats!";
else if (grade < cutoffa && grade >= cutoffb)
cout << firstname << " " << lastname << "'s Final Grade is " << grade << "%, which is a B! Pretty good, could be better though.";
else if (grade < cutoffb && grade >= cutoffc)
cout << firstname << " " << lastname << "'s Final Grade is " << grade << "%, which is a C! You're average - nothing more and nothing less.";
else if (grade < cutoffc && grade >= cutoffd)
cout << firstname << " " << lastname << "'s Final Grade is " << grade << "% which is D! Damn, you're stupid";
else if (grade < cutoffd)
cout << firstname << " " << lastname << "'s Final Grade is " << grade << "% which is an F! Have you considered dropping out?";
cin.get();
cin.get();
return 0;
}
Программа должна быть калькулятор класса, который принимает разбивку класса учителя и вычисляет есть ли у вас A, B, C, D или F в классе. Я делаю это исключительно по причине практики, и это не имеет никакого отношения к моему классу C++.
Он работает хорошо и все, но я выяснил, с какой проблемой: В конце я поместил следующую строку кода, которая применяется ко всем условным операторам (firstname и lastname - строки, в которые пользователь вводит его . первый/фамилия cutoffa является оценкой отрезана для получения а, что пользователь вводит):
if (grade >= cutoffa) cout << firstname << " " << lastname << "'s Final Grade is " << grade << "%, which is an A! Congrats!";
проблема заключается в том, что если кто-то имеет имя, как Джейк Шамс, он будет печатать «Джейк Шамс-х окончательный уровень составляет 98%, это A! Congrats! ». Ошибка здесь - «Шамс», потому что это должно быть «Шамс». Как я уже сказал, я новичок, и это мой первый раз, когда я использую инструкции if, поэтому, если кто-нибудь может объяснить мне, как это сделать, чтобы, если имя пользователя заканчивается буквой S, программа добавляет апостроф перед S, например: Jake Shams'
Достойный код, хорошо сделано. Мы предпочитаем, чтобы [минимальный, но полный] код размещался _here_, поскольку ссылки умирают, и все вопросы о переполнении стека также помогают будущим читателям, а не только вам! –
Спасибо, я отредактировал сообщение прямо сейчас! – przm
Вам не нужно писать 'else if (grade = cutoffb)', вы можете написать 'else if (grade> = cutoffb)', потому что, когда вы достигаете else, 'grade
alain