Peršokti į turinį

Kodel neveikia funkcija?


MrMou6

Recommended Posts

Si funkcija turetu du int kintamuosius sujunkti i viena bool (int1.int2):

bool kofmix(int int1, int int2) {
	bool answer = 0;
	bool int2chg = 0;
	int lenght = 0;
	if (int2 > 0 && int2 < 10) lenght = 1;
	else if (int2 > 9 && int2 < 100) lenght = 2;
	else if (int2 > 99 && int2 < 1000) lenght = 3;
	else if (int2 > 999 && int2 < 10000) lenght = 4;

	if (lenght == 1) int2chg = int2 / 10;
	else if (lenght == 2) int2chg = int2 / 100;
	else if (lenght == 3) int2chg = int2 / 1000;
	else if (lenght == 4) int2chg = int2 / 10000;
	answer = int1 + int2chg;
	return answer;
}

bet ji visada atiduoda atsakyma "1" ... kodel? :D

 

Nuoroda į komentarą
Dalintis per kitą puslapį

(redaguota)

:DD Sutvarkiau kintamuju tipa:

double kofmix(int int1, int int2) {
	double answer = 0;
	double int2chg = 0;
	int lenght = 0;
	if (int2 > 0 && int2 < 10) lenght = 1;
	else if (int2 > 9 && int2 < 100) lenght = 2;

	if (lenght == 1) int2chg = int2 / 10;
	else if (lenght == 2) int2chg = int2 / 100;
	answer = int1 + int2chg;
	std::cout << int2chg << std::endl;
	return answer;
}

bet grazina reiksme tiesiog int1

pasidariau cout papildoma to int2chg ir ji printina kaip 0, kodel? :D

Redaguota , nario MrMou6
Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 3 savaičių...
On 9/10/2017 at 16:26, MrMou6 parašė:

:DD Sutvarkiau kintamuju tipa:

double kofmix(int int1, int int2) {
	double answer = 0;
	double int2chg = 0;
	int lenght = 0;
	if (int2 > 0 && int2 < 10) lenght = 1;
	else if (int2 > 9 && int2 < 100) lenght = 2;

	if (lenght == 1) int2chg = int2 / 10;
	else if (lenght == 2) int2chg = int2 / 100;
	answer = int1 + int2chg;
	std::cout << int2chg << std::endl;
	return answer;
}

bet grazina reiksme tiesiog int1

pasidariau cout papildoma to int2chg ir ji printina kaip 0, kodel? :D

Kintamojo answer reikšmė tapo int1, nes iš 10/100 dalinai int, o ne double tipo kintamajį. Ir žinant, kad int reikšmės yra suapvalinamos, 0.x bus lygus 0.

 

Na, o dėl pačio sprendimo, štai:

double AddUp( double num1, double num2 )
{
	if ( num2 > 0 && num2 < 100 )
		return ( num1 + num2 ) / ( num2 < 10 ? 10 : 100 );
	else
		return 0;
}

 

Redaguota , nario Memories
Nuoroda į komentarą
Dalintis per kitą puslapį

Svečias
Ši tema yra užrakinta.
  • Å iame puslapyje narÅ¡o:   0 nariai

    • Nėra registruotų narių peržiÅ«rinčių šį forumą.

×
×
  • Sukurti naują...