• Почему этот код на Си работает не правильно?

    NIKITF
    @NIKITF
    Здравствуйте.

    Ваш цикл был составлен некорректно.

    #include<iostream>
    using namespace std;
    int main()
    {
    	cout << "To stop enter '.'\n\n";
    	size_t counter = 0;
    	char symb = 'a';
    	while (symb != '.')
    	{
    		counter++;
    		cout << "Current score: " << counter<< endl<< endl;
    		cout << "Enter symbol: "; cin >> symb;
    	}
    	cout << "\n\nResult: " << counter;
    	return 0;
    }
  • Как вывести количество полиндромов в введеной последовательности?

    NIKITF
    @NIKITF
    Здравствуйте.

    Число - палиндром, такое что отличается симметрией.
    Пример: 1, 444, 747, 5665.

    В Вашем примере их точно не может быть 7 штук.

    Предлагаю свой вариант решения задачи:


    #include<iostream>
    #include<string>
    #include<sstream>
    #include<iomanip>
    using namespace std;
    class PalindromCH
    {
    private:
    	bool palindrom(const string& d)
    	{
    		for (unsigned g = 0; g < d.size() / 2; g++)
    		{
    			if (d[g] != d[d.size() - g - 1])
    			{
    				return 0;
    			}
    		}
    		return 1;
    	}
    	unsigned counter(stringstream& c, string& d)
    	{
    		unsigned number{ 0 }; cout << endl;
    		cout << "Entered sequence of numbers:" << endl;
    		while (c >> d)
    		{
    			cout << setw(7) << d;
    			if (palindrom(d))
    			{
    				number++;
    			}
    		}
    		return number;
    	}
    	void check_digit(string& i)
    	{
    		cin >> i;
    		try
    		{
    			stod(i);
    		}
    		catch (exception& u)
    		{
    			cerr << u.what() << endl;
    		}
    	}
    public:
    	void examination()
    	{
    		unsigned f, t{ 0 }; stringstream v; string inp;
    		cout << "Enter the number of elements: ";
    		check_digit(inp);
    		f = stoi(inp);
    		while (f--)
    		{
    			inp.clear();
    			cout << "Enter ["<< ++t <<"]: ";
    			check_digit(inp);
    			v << inp << " ";
    		}
    		cout << endl << endl << counter(v, inp);
    		cout << " palindroms have been founded" << endl;
    	}
    };
    int main()
    {
    	PalindromCH text;
    	text.examination();
    	return 0;
    }
  • Как заполнить пространство ниже побочной диагонали?

    NIKITF
    @NIKITF
    Здравствуйте.
    Попробуйте так:

    for (unsigned u1 = 0; u1 < (n/2); u1++)
      {
        for (unsigned u2 = 0; u2 < n/2; u2++)
        {
          if ((u1 + u2) >= (n / 2) - 1)
          {
           //something to do with elements
          }
        }
        cout << endl;
      }