Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C++ - left operand must be modifiable l-value

Tak jsem tady zas :D Tentokrát jsem zkoušel různé operace s polem a v jedné části mi to náhle začlo hlásit v nadpisu uvedený error (u podmínek a[i] ve funkci 6-sudá a lichá). Tušíte, co s tím?

#include<iostream>
 using namespace std;

 //1 
int a[10]={5,7,8,6,20,100,12,13,4,90};

 //2
 int nejvetsi(){
	int nej = a[0];

	for(int i = 0; i < 10; ++i){
		if(a[i] > nej){
			nej = a[i];
		}	
	}
	return nej;
 }

 //3
 int index_nej(){
		int index = 0;
		int nej = a[0];

		for(int i = 0; i < 10; ++i){
			if(a[i] > nej){
			nej = a[i];
			index = i;
			}	
		}
	return index;
}

//4
 int cislo;
 int index_zadaneho_cisla(int cislo){
	 int i = 0;
	 int index;
	 do{
		 if(a[i] == cislo){
			index = i;
		 }
		 ++i;
	 }while(i < 10);
	 return index;
 }


 //5
 int soucet_minimalnich_hodnot(){
	int nejmensi = a[0];
	int nejmensi2 = a[1];

	for(int i = 0; i < 10; ++i){
			if(a[i] < nejmensi){
				nejmensi = a[i];
				a[i] = a[0];
				a[0] = nejmensi;

				for(int j = 1; j < 10; ++j){
					if(a[j] < nejmensi2){
						nejmensi2 = a[j];
					}
				}
			}	
		}


	 return nejmensi + nejmensi2;
 }
 
 //6
void suda_a_licha(){
	 cout << "Licha: ";
	 for(int i = 0; i < 10; ++i){
		 if(a[i] % 2 = 1){
			cout << a[i] << " ";
		 }
	 }
	 cout << endl;

	 cout << "Suda: ";
	 for(int i = 0; i < 10; ++i){
		 if(a[i] % 2 = 0){
			cout << a[i] << " ";
		 }
	 }
	 cout << endl;
 }

 int main(){
	 cout << nejvetsi() << " " << index_nej() << endl;

	 cout << "Zadej cislo, vratim index: ";
	 cin >> cislo;
	 cout << index_zadaneho_cisla(cislo) << endl;

	 cout << soucet_minimalnich_hodnot() << endl;

 return 0;
 }

Moc díky ;-)

Předmět Autor Datum
Uvědom si rozdíl mezi = a ==.
Wikan 28.10.2012 20:00
Wikan
Operátor pre priradenie ("=") očakáva na ľavej strane hodnotu, do ktorej môže priradiť nejaký výsled…
los 28.10.2012 20:04
los
Moc díky ;-) poslední
Katsushiro 04.11.2012 13:52
Katsushiro

Operátor pre priradenie ("=") očakáva na ľavej strane hodnotu, do ktorej môže priradiť nejaký výsledok. Ty si napísal príkaz, ktorý má hodnote "a[i] % 2" priradiť hodnotu "1". Zrejme si chcel použiť operátor pre porovnanie ("==").

Nižšie máš ďalšie syntaktické chyby.

Nabudúce sem nedávaj celý program, ale iba tú časť, ktorá má s problémom niečo spoločné. Možno potom prídeš aj sám na to, v čom je problém.

Zpět do poradny Odpovědět na původní otázku Nahoru