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
7 years ago
by
raliis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Upload New File
parent
63e6fe3f
master
Hide 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
);
}
}
This diff is collapsed.
Click to expand it.
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