am o problema C++

Intrebari despre limbajul C++, standardul C++, STL, OOP in C++ sau alte subiecte nelegate de VisualC++
Post Reply
Nubik1rus1
Junior
Junior
Posts: 3
Joined: 11 Jul 2017, 12:05

am o problema C++

Post by Nubik1rus1 » 11 Jul 2017, 12:17

este un tabel, unde la fiecare cifra vin cate 3 litere https://cs7062.userapi.com/c637830/v637 ... ZXBa0I.jpg , nu stiu cum sa explic, trebue de scris numele in consola(sau cum se numeste, scuzati, nu demult am inceput sa invat c++) si sa dea raspuns ca pe aceasta imagine https://cs7062.userapi.com/c637830/v637 ... os_VSA.jpg
consola(sau cum se numeste, scuzati, nu demult am inceput sa invat c++) va conţine pe prima linie numele persoanei scris cu litere mici. Pe următoarele linii se va afişa piramida aceasta astfel:- cifrele de pe un rând al piramidei se vor afişa despărţite de câte un singur spaţiu;- primul rând de cifre al piramidei va fi aliniat la marginea din stânga, celelalte rânduri vor fi astfel afişate astfel încât să dea forma piramidei aşa cum este afişată în exemplul de mai sus.



mihaineken
Junior
Junior
Posts: 5
Joined: 14 Jul 2017, 16:34
Judet: Timiş

Re: am o problema C++

Post by mihaineken » 14 Jul 2017, 16:35

Mai jos gasesti varianta mea.
Last edited by mihaineken on 14 Jul 2017, 16:42, edited 1 time in total.

mihaineken
Junior
Junior
Posts: 5
Joined: 14 Jul 2017, 16:34
Judet: Timiş

Re: am o problema C++

Post by mihaineken » 14 Jul 2017, 16:40

Code: Select all

#include <iostream>
#include <iomanip>
#include <string>
#include <vector>

using namespace std;

int getNum(char &c)
{
	switch (c)
	{
	case 65: return 1;
	case 74: return 1;
	case 83: return 1;
	case 66: return 2;
	case 75: return 2;
	case 84: return 2;
	case 67: return 3;
	case 76: return 3;
	case 85: return 3;
	case 68: return 4;
	case 77: return 4;
	case 86: return 4;
	case 69: return 5;
	case 78: return 5;
	case 87: return 5;
	case 70: return 6;
	case 79: return 6;
	case 88: return 6;
	case 71: return 7;
	case 80: return 7;
	case 89: return 7;
	case 72: return 8;
	case 81: return 8;
	case 90: return 8;
	case 73: return 9;
	case 82: return 9;

	default: return 0;
	}
}

int getSum(int &n)
{
	int sum   = n;
	int digit = 0;

	if (n >= 10)
	{
		digit = n % 10;
		sum /= 10;
		sum += digit;
	}
	return sum;
}

void setOut(vector<int> &vi)
{
	int n = 1;
	while (vi.size() > 0)
	{
		cout << setw(n) << setfill(' ');
		for (size_t i = 0; i < vi.size(); i++)
		{
			cout << vi[i] << " ";
		}
		cout << endl;
		for (size_t i = 0; i < (vi.size() - 1); i++)
		{
			vi[i] += vi[i + 1];
			vi[i] = getSum(vi[i]);
		}
		vi.pop_back();
		n++;
	}
}

void arrange(string &str)
{
	vector<int> vi;
	char *c = new char [1];

	for (auto i : str)
	{
		*c = toupper(i);
		vi.push_back(getNum(*c));
	}
	delete c;
	cout << str << endl;
	setOut(vi);

	return;
}

int main()
{
	string s;

	cout << "Introduceti numele: ";
	cin >> s;

	arrange(s);

	system("PAUSE");
	return 0;
}
Attachments
Fără titlu.png
Fără titlu.png (23.06 KiB) Viewed 523 times

Nubik1rus1
Junior
Junior
Posts: 3
Joined: 11 Jul 2017, 12:05

Re: am o problema C++

Post by Nubik1rus1 » 15 Jul 2017, 19:15

mihaineken wrote:

Code: Select all

#include <iostream>
#include <iomanip>
#include <string>
#include <vector>

using namespace std;

int getNum(char &c)
{
	switch (c)
	{
	case 65: return 1;
	case 74: return 1;
	case 83: return 1;
	case 66: return 2;
	case 75: return 2;
	case 84: return 2;
	case 67: return 3;
	case 76: return 3;
	case 85: return 3;
	case 68: return 4;
	case 77: return 4;
	case 86: return 4;
	case 69: return 5;
	case 78: return 5;
	case 87: return 5;
	case 70: return 6;
	case 79: return 6;
	case 88: return 6;
	case 71: return 7;
	case 80: return 7;
	case 89: return 7;
	case 72: return 8;
	case 81: return 8;
	case 90: return 8;
	case 73: return 9;
	case 82: return 9;

	default: return 0;
	}
}

int getSum(int &n)
{
	int sum   = n;
	int digit = 0;

	if (n >= 10)
	{
		digit = n % 10;
		sum /= 10;
		sum += digit;
	}
	return sum;
}

void setOut(vector<int> &vi)
{
	int n = 1;
	while (vi.size() > 0)
	{
		cout << setw(n) << setfill(' ');
		for (size_t i = 0; i < vi.size(); i++)
		{
			cout << vi[i] << " ";
		}
		cout << endl;
		for (size_t i = 0; i < (vi.size() - 1); i++)
		{
			vi[i] += vi[i + 1];
			vi[i] = getSum(vi[i]);
		}
		vi.pop_back();
		n++;
	}
}

void arrange(string &str)
{
	vector<int> vi;
	char *c = new char [1];

	for (auto i : str)
	{
		*c = toupper(i);
		vi.push_back(getNum(*c));
	}
	delete c;
	cout << str << endl;
	setOut(vi);

	return;
}

int main()
{
	string s;

	cout << "Introduceti numele: ";
	cin >> s;

	arrange(s);

	system("PAUSE");
	return 0;
}
am pus codul acesta in codeblocks, si am primit 5 errori

Post Reply