F fesoj Medlem sedan sep. 2002 96 inlägg Frågan 19 maj 2003 12:30 #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');
}
P pettsson Medlem sedan jan. 2002 1 122 inlägg Vad är det som inte fungerar?
F fesoj Medlem sedan sep. 2002 96 inlägg 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
P pettsson Medlem sedan jan. 2002 1 122 inlägg 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
F fesoj Medlem sedan sep. 2002 96 inlägg ändrade men fick nu error:
D:\Ny mapp\uppgift2.cpp(11) : error C2082: redefinition of formal parameter 'summa'
P PeW Medlem sedan juni 2000 10 432 inlägg Tog du bort din kombinerade definition-deklaration av 'summa' helt i funktionen? Om inte, så har du ett fel kvar.. redefinition ;)
F fesoj Medlem sedan sep. 2002 96 inlägg 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" ??
F fesoj Medlem sedan sep. 2002 96 inlägg fick en varning också:
D:\Ny mapp\uppgift2.cpp(22) : warning C4715: 'termer' : not all control paths return a value
P PeW Medlem sedan juni 2000 10 432 inlägg 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" ?
F fesoj Medlem sedan sep. 2002 96 inlägg ok ska jag göra! Tack för hjälpen! // josef
P PeW Medlem sedan juni 2000 10 432 inlägg Kanske skulle skrivit speciellt ist för exempelvis i mitt förra inlägg ;)
C Cy-4 Medlem sedan maj 2001 80 inlägg 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.
S stenmark Medlem sedan apr. 2003 18 inlägg 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...
P pettsson Medlem sedan jan. 2002 1 122 inlägg Huruvida funktionen fungerar som den ska var väl inte frågan? §e Men dum är du inte, ty du har rätt ;)