Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Jürgen Hein
/
iax0583
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
4bb4faed
authored
Sep 27, 2024
by
Jürgen Hein
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Lõpptulemus on tagurpidi. Muudatus ArvuAlusteTeisendamine.c
parent
c6ede816
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
51 deletions
Tunnitöö 26.09.24/ArvuAlusteTeisendamine.c
Tunnitöö 26.09.24/ArvuAlusteTeisendamine.c
View file @
4bb4faed
//Arvu aluste teisendamine
/* Arvu aluste teisendamine.
//Arvu aluste teisendamine
/* Arvu aluste teisendamine.
* Muutsin algoritmi, võtsin välja pointerid.
* */
#include <stdio.h>
#include <string.h>
...
...
@@ -6,21 +9,17 @@
int
main
(
void
)
{
int
letters
[
SUURUS
];
//täisarvuline massiiv
char
temp
[
SUURUS
];
//massiiv ajutiste suuruste jaoks
char
arv
[
SUURUS
];
char
arv
[
SUURUS
];
//
char
l6pp
[
SUURUS
];
//
int
a
;
//küsitav arvu algne alus
int
b
;
//küsitav uue arvu alus
int
t
;
//liikmete arv massiivis (alg)
int
i
;
int
algbase
;
//arvu algne alus
char
*
alg
;
int
l6ppbase
;
//uue arvu alus
char
*
l6pp
;
int
result
;
int
mult
;
//kordaja, võrdne algse aluse numbrilise väärtusega
do
{
printf
(
"Sisestada muutuja arv"
);
...
...
@@ -38,9 +37,7 @@ int main(void)
}
while
(
b
==
0
);
algbase
=
a
;
alg
=&
(
arv
[
0
]);
l6ppbase
=
b
;
l6pp
=&
(
temp
[
0
]);
result
=
0
;
mult
=
1
;
...
...
@@ -52,73 +49,60 @@ int main(void)
{
printf
(
"Esines viga!"
);
}
t
=
strlen
(
alg
);
//t = mitu arvu massiivis (alg)
t
=
strlen
(
arv
);
//t = mitu arvu massiivis
if
(
algbase
==
l6ppbase
)
//Kui algne alus on sama, mis uue arvu alus
{
for
(
i
=
0
;
i
<
t
;
i
++
)
{
a
lg
[
i
]
=
l6pp
[
i
];
a
rv
[
i
]
=
l6pp
[
i
];
i
++
;
}
}
i
=
t
-
1
;
for
(
i
=
0
;
i
>=
0
;
i
--
)
//tsükkel kas i>=0?
for
(
i
=
t
-
1
;
i
>=
0
;
i
--
)
//tsükkel kas i>=0?
{
if
(
'0'
<=
alg
[
i
]
||
alg
[
i
]
<=
'9'
)
//Kas massiivi liige on arv vahemikus 0..9?
if
(
'0'
<=
arv
[
i
]
||
arv
[
i
]
<=
'9'
)
//Kas massiivi liige on arv vahemikus 0..9?
{
t
=
alg
[
i
]
-
'0'
;
//leida arvuline väärtus
t
=
arv
[
i
]
-
'0'
;
//leida arvuline väärtus
}
if
(
'A'
<=
alg
[
i
]
||
alg
[
i
]
<=
'Z'
)
else
if
(
'A'
<=
arv
[
i
]
||
arv
[
i
]
<=
'Z'
)
{
//Kas massiivi l. on täht vahemikus A..Z?
t
=
alg
[
i
]
-
'A'
+
10
;
//leida arvuline väärtus
t
=
arv
[
i
]
-
'A'
+
10
;
//leida arvuline väärtus
}
if
(
'a'
<=
alg
[
i
]
||
alg
[
i
]
<=
'z'
)
else
if
(
'a'
<=
arv
[
i
]
||
arv
[
i
]
<=
'z'
)
{
//Kas massiivi l. on täht vahemikus a..z?
t
=
alg
[
i
]
-
'a'
+
10
;
//leida arvuline väärtus
t
=
arv
[
i
]
-
'a'
+
10
;
//leida arvuline väärtus
}
if
(
t
==
(
-
1
)
||
t
>=
algbase
)
//t ei saa olla -1 ega väiksem a-st
{
printf
(
"Esines viga!"
);
}
result
+=
mult
*
t
;
mult
*=
algbase
;
//kordaja, mis võrdne algse alusega
result
=
result
+
mult
*
t
;
mult
=
mult
*
algbase
;
//kordaja, mis võrdne algse alusega
}
i
=
0
;
while
(
result
>
0
)
{
if
(
result
%
l6ppbase
<
10
)
{
temp
[
i
]
=
'0'
+
(
result
%
l6ppbase
);
}
else
{
temp
[
i
]
=
'A'
+
(
result
%
l6ppbase
-
10
);
}
result
/=
l6ppbase
;
i
++
;
}
/*
while(result>0)
if
(
result
==
0
)
//
{
temp[i]=letters[result % l6ppbase]; //ajutine muutuja eelmise tulemuse jäägi ülekandmiseks
result /= l6ppbase; //jagada eelmine tulemus uue alusega
i++; //näitab, mitu tehete tsüklit tehti
}
*/
for
(
t
=
0
;
t
<
i
;
t
++
)
l6pp
[
i
++
]
=
'0'
;
//
l6pp
[
i
]
=
'\0'
;
//
}
else
{
l6pp
[
t
]
=
temp
[
i
-
t
-
1
];
}
l6pp
[
i
]
=
'\0'
;
if
(
i
==
0
)
while
(
result
>
0
)
{
if
(
result
%
l6ppbase
<
10
)
{
l6pp
[
0
]
=
'0'
;
l6pp
[
1
]
=
'\0'
;
printf
(
"%s alusel %d on %s alusel %d"
,
arv
,
algbase
,
temp
,
l6ppbase
);
l6pp
[
i
++
]
=
'0'
+
(
result
%
l6ppbase
);
}
else
{
temp
[
i
]
=
'\0'
;
printf
(
"%s alusel %d on %s alusel %d"
,
arv
,
algbase
,
temp
,
l6ppbase
);
l6pp
[
i
++
]
=
'A'
+
(
result
%
l6ppbase
-
10
);
}
result
/=
l6ppbase
;
}
l6pp
[
i
]
=
'\0'
;
}
printf
(
"%s on alusel %d"
,
l6pp
,
l6ppbase
);
return
0
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment