• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Określenie warunku

Object Storage Arubacloud
0 głosów
133 wizyt
pytanie zadane 7 grudnia 2015 w C i C++ przez Plessio Obywatel (1,090 p.)

Witam mam napisać taki o to program:

Stwórz dwa wektory o takim samym rozmiarze i zaimplementuj funkcję, która zwróci wektor, którego elementy są sumą odpowiadających sobie elementów z dwóch przekazanych wektorów. Dodaj w funkcji zabezpieczenie, które wyświetla komunikat w przypadku, gdy przekazane wektory są różnego rozmiaru. 

Tylko nie wiem w jaki sposób określić ten warunek w if, aby to działało próbowałem coś w stylu:

#include<vector>
#include<algorithm>
#include<iostream>

using namespace std;
vector<int> a;
vector<int> b;


vector<int>wektor_koncowy(vector<int>& a, vector<int> const& b)
{
	for (size_t i = 0; i != a.size(); ++i)
		a[i] += b[i];

	return a;
}

int main() {
	

	vector<int> a{1, 3, 5, 7, 9};
	vector<int> b{2, 4, 6, 8, 10};
	int c;
	cin >> c;

	if (a[c]=b[c])
	{
		wektor_koncowy(a, b);

		cout << "Wektor koncowy: " << endl;
		for (vector<int>::iterator itr = a.begin(); itr != a.end(); ++itr)
		{
			cout << *itr << ", ";
		}
		cout << endl;
	}

	else
		cout << "Wektory sa innych wielkosci!";
	


	system("pause");
	return 0;
}

Lecz i tak wyskakuje błąd zamiast wiadomości po else.

2 odpowiedzi

0 głosów
odpowiedź 7 grudnia 2015 przez Radfler VIP (101,030 p.)
wybrane 7 grudnia 2015 przez Plessio
 
Najlepsza

Porównaj rozmiary wektorów w taki sposób:

if(a.size() == b.size()) { // Podwójne '==' to porównanie
  // ...
}

Zmienna c nie jest potrzebna. Poza tym zgodnie z poleceniem zabezpieczenie ma znaleźć się w funkcji, nie poza nią.

komentarz 7 grudnia 2015 przez Plessio Obywatel (1,090 p.)
Dziękuję za pomoc, już wszystko pozmieniałem i jest jak należy :)
0 głosów
odpowiedź 7 grudnia 2015 przez niezalogowany
Zły operator. = to operator przypisania a == to operator porównania.
komentarz 7 grudnia 2015 przez Plessio Obywatel (1,090 p.)
Mimo to program nadal nie działa poprawnie dla wartości c < 5 wyświetla się komunikat, a dla większych i równych 5 wyskakuje błąd.
komentarz 7 grudnia 2015 przez niezalogowany
Zmień typ funkcji na void i usuń returna a warunek w if powinien wyglądać tak: if(a.size()==b.size())

Podobne pytania

0 głosów
1 odpowiedź 99 wizyt
pytanie zadane 23 maja 2016 w C i C++ przez alchem Obywatel (1,210 p.)
0 głosów
0 odpowiedzi 367 wizyt
pytanie zadane 12 listopada 2023 w C i C++ przez whiteman808 Obywatel (1,820 p.)
0 głosów
3 odpowiedzi 271 wizyt
pytanie zadane 11 czerwca 2023 w C i C++ przez martinez369 Początkujący (460 p.)

92,579 zapytań

141,432 odpowiedzi

319,662 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...