Это домашнее задание, которое требует использования указателей для вывода сообщений, когда входное значение делится на 3, на 5 и на 3 & 5. Код компилируется и запускается, но я не получаю желаемый результат. Кроме того, я не уверен, что нужно изменить. Вот мой код:Проблемы с выпуском с использованием указателей для ветвления и циклирования на C++?
#include <iostream>
#include <iomanip>
using namespace std;
using std::istream;
int main()
{
const int i{3}; // Variable initialization and declaration
long* pnumber{}; // Pointer definition and initialization
long number1 {}; // Declaration and initialization of variable number1
long number2 [i]; // Declaration and initialization of variable containing array of 3L numbers
char indicator{ 'n' }; // Continue or not?
pnumber = &number1; // Store address in a pointer
for (;;)
{
cout << "Please enter any number less than 2 billion, "
<< "then press the Enter key: ";
cin >> number1;
if (*pnumber % 3 == 0) // Test if remainder after dividing by 3 is 0
{
cout << endl
<< "Number: " << number1
<< "-Fizz" << endl
<< endl << "Do you want to enter another value (please enter y or n? ";
cin >> indicator; // Read indicator
if (('n' == indicator) || ('N' == indicator))
break; // Exit from loop
}
if (*pnumber % 5 == 0) // Test if remainder after dividing by 5 is 0
{
cout << endl
<< "Number: " << number1
<< "-Buzz" << endl
<< endl << "Do you want to enter another value (please enter y or n? ";
cin >> indicator; // Read indicator
if (('n' == indicator) || ('N' == indicator))
break; // Exit from loop
}
if ((*pnumber % 3 == 0) && (*pnumber % 5 == 0)) // Test if remainder after dividing by 5 and 3 is 0
{
cout << endl
<< "Number: " << number1
<< "-FizzBuzz" << endl
<< endl << "Do you want to enter another value (please enter y or n? ";
cin >> indicator; // Read indicator
if (('n' == indicator) || ('N' == indicator))
break; // Exit from loop
}
else
{
cout << endl // Default: here if not divisible by 3 or 5
<< "Please enter another number."
<< endl << "Do you want to enter another value (please enter y or n? ";
cin >> indicator; // Read indicator
if (('n' == indicator) || ('N' == indicator))
break; // Exit from loop
}
}
pnumber = &number2 [i]; // Change pointer to address of number2
for (;;)
{
cout << endl << endl
<< "Please enter an array of number(s), where the number is less than 2 billion, "
<< "then press the Enter key: ";
cin >> number2 [i];
if (*pnumber % 3 == 0) // Test if remainder after dividing by 3 is 0
{
cout << endl
<< "Number: " << number2
<< "-Fizz" << endl
<< endl << "Do you want to enter another array (please enter y or n? ";
cin >> indicator; // Read indicator
if (('n' == indicator) || ('N' == indicator))
break; // Exit from loop
}
if (*pnumber % 5 == 0) // Test if remainder after dividing by 5 is 0
{
cout << endl
<< "Number: " << number2
<< "-Buzz" << endl
<< endl << "Do you want to enter another array (please enter y or n? ";
cin >> indicator; // Read indicator
if (('n' == indicator) || ('N' == indicator))
break; // Exit from loop
}
if ((*pnumber % 3 == 0) && (*pnumber % 5 == 0)) // Test if remainder after dividing by 5 and 3 is 0
{
cout << endl
<< "Number: " << number2
<< "-FizzBuzz" << endl
<< endl << "Do you want to enter another value (please enter y or n? ";
cin >> indicator; // Read indicator
if (('n' == indicator) || ('N' == indicator))
break; // Exit from loop
}
else
{
cout << endl // Default: here if not divisible by 3 or 5
<< "Please enter another number."
<< endl << "Do you want to enter another value (please enter y or n? ";
cin >> indicator; // Read indicator
if (('n' == indicator) || ('N' == indicator))
break; // Exit from loop
}
}
cout << endl;
return 0;
}
Так что же * ошибка * именно вы получаете? Взгляните на этот пост о некоторых предложениях при обращении за помощью к домашним заданиям: https://meta.stackoverflow.com/questions/334822/how-do-i-ask-and-answer-homework-questions – sas
Проблема заключается в том, номер 2 выводится во второй части кода при вводе нескольких номеров. Он выводит Number: 008FFA88-Fizz, а не если я ввел 6, он должен вывести Number: 6-Fizz. – phoenixCoder
Почему 'using std :: istream' с' using namespace std'? – Raindrop7