Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
raliis
/
IAX0584
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
dd727167
authored
Mar 15, 2018
by
raliis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Upload New File
parent
63e6fe3f
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
143 additions
and
0 deletions
KT1/KT11_uus.c
KT1/KT11_uus.c
0 → 100644
View file @
dd727167
#include <stdio.h>
#include <string.h>
typedef
struct
{
int
i
;
char
S
[
30
];
}
Kirje
;
int
fileExist
(
char
*
filename
);
// kontrollib faili olemasolu
int
howManyLines
(
char
*
failiNimi
);
// loeb ära mitu rida failis on
void
kirjedSisse
(
Kirje
**
,
char
*
filename
);
// loeb andmed sisse
void
sort
(
Kirje
*
nimekiri
,
int
T
);
// sorteerib andmed
void
valjastus
(
Kirje
*
nimekiri
,
int
T
);
// väljastab sorteeritud andmed
int
main
()
{
// kontrollib faili olemasolu, kui ei eksisteeri siis lõpetab programm töö
if
(
fileExist
(
"E1.txt"
)
!=
0
)
{
printf
(
"Faili ei asu programmiga samas kaustas"
);
return
1
;
}
int
T
;
T
=
howManyLines
(
"E1.txt"
);
// loeb ära read failis
Kirje
nimekiri
[
T
];
// massiiv andmete hoidmiseks
Kirje
*
kirjeviit
=
nimekiri
;
kirjedSisse
(
&
kirjeviit
,
"E1.txt"
);
// loeb sisse andmed
sort
(
nimekiri
,
T
);
// sorteerib
valjastus
(
nimekiri
,
T
);
// väljastab tulemused faili ja ekraanile
return
0
;
}
int
fileExist
(
char
*
filename
)
{
FILE
*
fp
;
fp
=
fopen
(
filename
,
"r"
);
if
(
fp
==
NULL
)
{
return
1
;
}
else
{
fclose
(
fp
);
return
0
;
}
}
int
howManyLines
(
char
*
failiNimi
)
{
FILE
*
data
;
data
=
fopen
(
failiNimi
,
"r"
);
int
c
=
0
;
int
read
=
0
;
while
((
c
=
fgetc
(
data
))
!=
EOF
)
{
if
(
c
==
'\n'
)
read
++
;
}
fclose
(
data
);
if
(
read
==
0
)
{
printf
(
"Fail %s on tühi"
,
failiNimi
);
return
1
;
}
else
{
return
read
;
}
}
void
kirjedSisse
(
Kirje
**
kirjeviit
,
char
*
filename
)
{
int
i
=
0
;
// loendurid
int
j
;
FILE
*
fp
;
// avab faili, mille nimi anti kaasa
fp
=
fopen
(
filename
,
"r"
);
// loeb sisse andmed failist
while
(
fscanf
(
fp
,
"%d %s"
,
&
(
*
kirjeviit
+
i
)
->
i
,
(
*
kirjeviit
+
i
)
->
S
)
!=
EOF
)
{
i
++
;
}
fclose
(
fp
);
// väljastab tulemused ekraanile
for
(
j
=
0
;
j
<
i
;
j
++
)
{
printf
(
"%d, %s
\n
"
,
(
*
kirjeviit
+
j
)
->
i
,
(
*
kirjeviit
+
j
)
->
S
);
}
printf
(
"
\n
"
);
}
void
sort
(
Kirje
*
nimekiri
,
int
T
)
{
int
i
,
j
;
Kirje
temp
;
for
(
i
=
0
;
i
<
T
;
i
++
)
{
for
(
j
=
1
;
j
<
T
;
j
++
)
{
if
(
nimekiri
[
j
-
1
].
i
>
nimekiri
[
j
].
i
)
// kui eelnev fail on suurem, vahetab kohad
{
temp
=
nimekiri
[
j
];
nimekiri
[
j
]
=
nimekiri
[
j
-
1
];
nimekiri
[
j
-
1
]
=
temp
;
}
else
if
(
nimekiri
[
j
-
1
].
i
==
nimekiri
[
j
].
i
)
{
// kui arvud on võrdsed kontrollib tähestikulist järjestust ja vajadused vahetab kohad
if
(
strcmp
(
nimekiri
[
j
-
1
].
S
,
nimekiri
[
j
].
S
)
>
0
)
{
temp
=
nimekiri
[
j
];
nimekiri
[
j
]
=
nimekiri
[
j
-
1
];
nimekiri
[
j
-
1
]
=
temp
;
}
}
}
}
}
void
valjastus
(
Kirje
*
nimekiri
,
int
T
)
{
int
i
;
FILE
*
output
;
// loob faili
output
=
fopen
(
"E2.txt"
,
"w"
);
for
(
i
=
0
;
i
<
T
;
i
++
)
{
fprintf
(
output
,
"%d, %s
\n
"
,
nimekiri
[
i
].
i
,
nimekiri
[
i
].
S
);
printf
(
"%d, %s
\n
"
,
nimekiri
[
i
].
i
,
nimekiri
[
i
].
S
);
}
}
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