webForumDet fria alternativet

vad är felet?

C/C++ur C/C++

14 svar · 327 visningar · startad av fesoj

Medlem sedan sep. 200296 inlägg
Frågan#1

Har pillat lite med denna... jag e inget proffs på c som ni kanske förstår! Hoppas nån kan hjälpa mig!
Tack! / josef

#include <iostream.h>

double termer(int summa);
double termer(int summa)

{
double summa=0;

while(n\<summa)
	for(int i=0;i\<n;i++)
	{  
		if(summa \< n)
		summa+=i;
		else return i;
	}

}

void main(void)
{
char x;
int tal;

do 

	{
		cout\<\<"Mata in ett tal:";  
		cin\>\>tal;  

		cout \<\< "Antal termer är: " \<\< termer(tal) \<\< endl;

		cout \<\< "En gång till kanske? (j/n)" \<\< endl;
		cin \>\> x;

	}

while(x == 'j');

}

Medlem sedan jan. 20021 122 inlägg
#2

Vad är det som inte fungerar?

Medlem sedan sep. 200296 inlägg
#3

får error som lyder:
D:\Ny mapp\uppgift2.cpp(11) : error C2082: redefinition of formal parameter 'summa'
D:\Ny mapp\uppgift2.cpp(14) : error C2065: 'n' : undeclared identifier

Medlem sedan jan. 20021 122 inlägg
#4

Du definerar summa som både en int och en double, döp om den ena. Du måste initiera n innan du kan använda den.
Sen är det populärt att använda [ kod] och [/ kod] taggarna

...För att få en fin ruta :D
Medlem sedan sep. 200296 inlägg
#5

ändrade men fick nu error:
D:\Ny mapp\uppgift2.cpp(11) : error C2082: redefinition of formal parameter 'summa'

Medlem sedan juni 200010 432 inlägg
#6

Tog du bort din kombinerade definition-deklaration av 'summa' helt i funktionen? Om inte, så har du ett fel kvar.. redefinition ;)

Medlem sedan sep. 200296 inlägg
#7

ok! nu funkar det lite i alla fall! =) hehe
fast nu får jag samma svar oavsett vad jag matar in för tal! Så här står det:

Mata in ett tal: 2
Antal termer är: -1 #IND

Vad betyder "#IND" ??

Medlem sedan sep. 200296 inlägg
#8

fick en varning också:
D:\Ny mapp\uppgift2.cpp(22) : warning C4715: 'termer' : not all control paths return a value

Medlem sedan juni 200010 432 inlägg
#9

Tips:
Löp igenom koden med papper och penna. Fundera om alla dina värden ger rätt resultat. Kolla exempelvis vad din funktion "termer" returnerar... ;)

I din kod ovan.. vad är "n" ?

Medlem sedan sep. 200296 inlägg
#10

ok ska jag göra! Tack för hjälpen! // josef

Medlem sedan juni 200010 432 inlägg
#11

Kanske skulle skrivit speciellt ist för exempelvis i mitt förra inlägg ;)

Medlem sedan maj 200180 inlägg
#12

while(n<summa)
for(int i=0;i<n;i++)
{
if(summa < n)
summa+=i;
else return i;
}

If-satsen borde väl aldrig att köras eftersom du loopar så länge n < summa och i if-satsen kollar du om summa < n. Det borde aldrig inträffa.

Medlem sedan apr. 200318 inlägg
#13

Det kanske bara är jag som är trög. Men jag fattar inte vad du vill att funktionen ska göra. Du vill veta hur många termer ett tal är uppbyggt av,men det beror ju precis på vad det är för termer eller? Som sagt kanske bara jag som är dum...

Medlem sedan jan. 20021 122 inlägg
#14

Huruvida funktionen fungerar som den ska var väl inte frågan? §e Men dum är du inte, ty du har rätt ;)

Medlem sedan juni 200010 432 inlägg
#15

Intressant fråga :)

135 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)