1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
| //10.04.11 01:18
/*
Name:
Copyright:
Author:
Date: 10.04.11 01:18
Description:
*/
#include <graphics.h>
#include <stdio.h> // ôóíêöèè ââîäà âûâîäà
#include <conio.h> // äëÿ ðàáîòû ñ êîíñîëüþ
#include <windows.h> // íå çíàþ
#include <string.h> // äëÿ ðàáîòû ñî ñòðîêàìè
#include <stdlib.h> /* ñòàíäàðòíîé áèáëèîòåêè îáùåãî íàçíà÷åíèÿ ÿçûêà Ñè,
êîòîðûé ñîäåðæèò â ñåáå ôóíêöèè, çàíèìàþùèåñÿ âûäåëåíèåì ïàìÿòè,
êîíòðîëü ïðîöåññà âûïîëíåíèÿ ïðîãðàììû, è äðóãèå.*/
// Ñïèñîê
struct Node
{
int ch;
Node *next;
};
typedef Node *pNode;
//-----------------------------//
void sort(pNode Curr)
{
int i;
pNode p1, p2;
for(p1 = Curr; p1; p1 = p1->next)
{
for(p2 = Curr; p2; p2 = p2->next)
{
if(p1->ch < p2->ch)
{
i = p1->ch;
p1->ch = p2->ch;
p2->ch = i;
}
}
}
}
// Ïðîöåäóðà ñîðòèðîâêè
main ()
{
//-----------------------------------------------------//
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
// Êèðèëèöà
//---------------------------------------------------------//
pNode *First = NULL, *Curr = NULL, *Last;
// First - óêàçàòåëü íà íà÷àëî ñïèñêà
// Curr - óêàçàòåëü íà òåêóùóþ ïîçèöèþ
// Last - óêàçàòåëü íà êîíåö ñïèñêà
int i, count = 0;
// i,count - ñ÷åò÷èê
FILE *file;
// file - ôàéë ñ äàííûìè
char str[100];
// str - Ñòðîêà èç 99 ñèìâîëîâ
//--------------------------------------------------------//
//---------------------------------------------------------//
while (1)
{
puts(" Ââåäèòå èìÿ ôàéëà ñ ðàñøèðåíèåì Ïðèìåð: ÈìÿÔàéëà.Òèï :> ");
gets(str); // ââîä èìåíè è òèïà ôàéëà
file = fopen(str,"r"); // îòêðûâàåì ôàéë äëÿ ÷òåíèÿ åñëè îí ñóùåñòâóåò
if ((file = fopen(str,"r"))==NULL) // ïðîâåðÿåì íå ïóñò ëè ôàéë èëè ñóùåñòâóåò ëè âîîáùå
{
printf("\n Îøèáêà!! Ôàéë ñ èìåíåì %s íå íàéäåí èëè ôàéë ïóñò\n",str);
// åñëè ôàéëà íåò èëè îí ïóñò ïðåäëàãàåì ââåñòè íîâîå èìÿ èëè âûéòè èç ïðîãðàììû
printf("\nÂâåñòè çàíîâî?? Yes/No Y/N\n :> ");
gets(str);
// âûáîð
if ((strncmp(str,"Yes",1))==0)
// ïðîâåðÿåì ïåðâûé ñèìâîë èç ââåäåííîé ñòðîêè
{
continue; // åñëè ïîëüçîâàòåëü âñå òàêè ðåøèë ïîïðîáîâàòü åùå ðàç ââåñòè èìÿ òî íà÷èíàåì öèêë çàíîâî
}
else // èíà÷å
{
system("pause"); // ñèñòåìíîå ñîîáùåíèå ÷òî á íàæàëè ëþáóþ êëàâèøó
return 1; // âûõîä èç ïðîãðàììû
}
}
else // åñëè ôàéë íàéäåí òî âûâîäèì ñîîáùåíèå î òîì ÷òî ôàéë îòêðûòü äëÿ ÷òåíèÿ
{
printf("\n Ôàéë %s áûë óñïåøíî îòêðûòü äëÿ ÷òåíèÿ!!\n",str);
break; // âûõîäèì èç öèêëà
}
}
//------------------------------------------------------------//
//Ñîçäàåì ãîëîâó ñïèñêà
Curr = (pNode*)malloc(sizeof(Node));
// Curr->ch = 0;
First = Curr;
Curr = Last;
for (i=0; i<100; i++)
if((fscanf(file, "%d", Curr->ch)) == 0)
{
Curr->next = /*(pNode*)*/malloc(sizeof(Node));
Curr = Curr->next;
Curr->ch=i+1;
Curr->next = Last;
}
else
break;
//---------------------------------------------------------//
printf("\n Input: \n");
Curr = First;
while (Curr != Last)
{
printf(" %d ",Curr->ch);
Curr = Curr->next;
}
//------------------------------------------------------//
Curr = First;
for(Curr = First; Curr; Curr = Curr->next)
{
for(Last = Curr; Last; Last = Last->next)
{
if(Curr->ch < Last->ch)
{
i = Curr->ch;
Curr->ch = Last->ch;
Last->ch = i;
}
}
}
printf("\n Output: \n");
Curr = First;
while (Curr != Last)
{
printf(" %d ",Curr->ch);
Curr = Curr->next;
}
//--------------------------------------------------------//
getch();// æäåì íàæàòèÿ êëàâèøè äëÿ çàâåðøåíèÿ ïðîãðàììû))
return 0;
}
//--------------------------------------------------------// |