12. april 2003 - 13:59
Der er
12 kommentarer og 1 løsning
finde tegn i variabel
jeg vil gerne vide hvilke filer jeg skal include og hvilken funktion jeg skal bruge for finde ud af hvad feks. det 3 tal i en int variabel er så hvis int a = 1653134; og jeg skal finde ud af hvad det 3 tegn er så får jeg returneret 5
Annonceindlæg fra DE-CIX
12. april 2003 - 14:05
#1
int scale[] = {1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000 }; int v = 1653134; int digit3 = (v / scale[(int)log10(v) - 2]) % 10; burde gøre det !
12. april 2003 - 14:06
#2
Der skal inkluderes math.h for at have log10.
12. april 2003 - 14:08
#3
Og hvis compilerne brokker sig over log10, så brug: int digit3 = (v / scale[(int)log10((double)v) - 2]) % 10;
12. april 2003 - 14:11
#4
jeg får bare E2109 not allowed
12. april 2003 - 14:14
#5
På hvad ?
12. april 2003 - 14:14
#6
Altså hvilken linie ? Og hvilken compiler bruger du ?
12. april 2003 - 14:15
#7
#include <iostream> #include <math.h> using namespace std; int main() { int scale[] = {1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000 }; int v = 1653134; int digit3 = (v / scale[(int)log10((double)v) - 2]) % 10; cout << digit3 << endl; } compiler og kører som forventet hos mig.
12. april 2003 - 14:16
#8
borland c++ builder og den her linie fejler ShowMessage((123 / scale[(int)log10((double)123) - 2]) % 10);
12. april 2003 - 14:18
#9
hey nu virker den sorry
12. april 2003 - 14:20
#10
men kunne du ikke være flink og lige forklare den linie lidt nærmere det er nu sjovere når man forstår det ellers lærer man det squ aldrig (v / scale[(int)log10((double)v) - 2]) % 10 bare det der
12. april 2003 - 14:24
#11
log10(v) returnerer 10 tals logaritmen af v - log10(1653134) er 6.et-eller-andet (int) trunkerer til integer - (int)6.et-eller-andet er 6 scale[6-2] = scale[4] = 10000 1653134/10000 = 165 165%10 = 5
12. april 2003 - 14:25
#12
pointen er at der er en sammenhæng mellem log10(v) og antal cifre i v.
12. april 2003 - 14:27
#13
ok takker
Kurser inden for grundlæggende programmering