Problemmer med en hjemmelavet funktion...
Jeg skal lave et program som kan lave beregninger inden for ohms lov og effekt loven.. først bliver brugeren spurgt om værdi 1 og derefter værdi 2, han skal skrive om det er V,A,O,W (Volt, Ampere, Ohm eller Watt) så finder min funktion ud af hvad der er blevet skrevet.. Men den viker selvfølig ikke, når man compiler programmet og kører det, kan man f.eks. indtaste i værdi 1 20W så finder den ud af at man har skrevet W, det er fint nok, og det virker.. men derefter står den helt af.. og hvis man så bageefter skriver 40V så siger den bare at den har fundet 40V... den skal sige at den har fundet V...så det er kun første gang man skriver sin værdi at min funktion virker..
Her er min kode.. den er lidt rodet da den er kopiret over fra Turbo C++
////// Includer filer
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <iostream.h>
////// Globale variabler
char *findtype; // Midlertidlig variable til at lede efter typer (A,V,O,W)
char *foundtypes[1];
char values[1][80]; /* vores 2 dimisonele array der hold værdi 1 i values[0] og
værdi 2 i values[1], de indeholder bægge 80 elementer. */
////// H‘nvisninger s† vi kan have vores main i toppen.
void findtypes(char *variable, int number);
// finder typen (A,V,O,W) som man har skrevet, og gemmer den i foundtypes
void udregnresultat(); // udregner alle de resultater som man kan komme frem til
void main(void)
{
char ch;
clrscr();
printf(\"Velkommen til Kim Hockerups og Rasmus Toelh›js\\nC++ program, som ikke kan en skid. \\nTryk en tast\");
getch();
do
{
clrscr();
printf(\"Du skal skrive 2 v‘rdiere, med ben‘vense bagefter, f.eks. 40A og 20V s† vil vores program selv udregne resten for dig.\\n\");
// indtast v‘rdi 1
printf(\"Indtast v‘rdi 1\\n\");
cin >> values[0];
findtypes(values[0], 0);
//findprefixes(values[0]);
// indtast v‘rdi 2
printf(\"\\nIndtast v‘rdi 2\\n\");
cin >> values[1];
findtypes(values[1], 1);
//findprefixes(values[1]);
udregnresultat();
ch = getch();
}
while(ch != 27);
}
void findtypes(char *variable, int number)
{
int i;
char types[] = {\'V\',\'A\',\'O\',\'W\'}; // Volt, Ampere, Ohm og Watt
/* Pr›v at se om en af de 4\'er typer
findes i den variable vi har sendt */
variable = strupr(variable);
for (i = 0; i <= 3; i++) {
printf(\"%i\", i);
findtype = strchr(variable, types[i]);
if(findtype) {
/* Den fandt en type, l‘g den ned i fundne
typer, og afslut loppet */
foundtypes[number] = findtype;
break;
}
}
if(foundtypes[number]) {
printf(\"fandt typen %s\", foundtypes[number]);
}
else {
printf(\"Du skal skrive en v‘rdi\");
}
}
void udregnresultat()
{
if(foundtypes[0] && foundtypes[1]) {
printf(\"\\nResultatet blev:\\n...%s...%s...\", foundtypes[0], foundtypes[1]);
}
else {
printf(\"Du skal skrive en type ved begge steder\\n\");
}
printf(\"Tryk ESC for at afslutte\");
}