84冒泡排序文本数据
利用之前学过的所有知识.
随机生成10个数字(1-1000),一行一个,并存到1.txt中.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int
F_gettimestamp() {
time_t l_now;
time(&l_now);
return
(int)l_now;
}
void F_randomize(int p_v1)
{
srand(p_v1);
}
int F_rand(int p_min, int p_max) {
return
rand() % (p_max - p_min + 1) + p_min;
}
void main() {
int l_time =
F_gettimestamp();
F_randomize(l_time);
int l_length = 10;
//设置生成的随机数的个数.
int *p = (int *)calloc(l_length, sizeof(int));
for
(size_t i = 0; i < l_length; i++) {
p[i] = F_rand(1,
1000);
}
FILE * l_fp_write = fopen("1.txt", "w");
if
(l_fp_write != NULL) {
char l_out[20] = { 0 };
for (size_t i = 0; i
< l_length; i++) {
sprintf(l_out, "%d\n", p[i]);
fputs(l_out,
l_fp_write);
}
}
fclose(l_fp_write);
free(p);
system("pause");
}
再读取1.txt中的数据,利用冒泡算法进行排序,排序完成之后,再重新存到1.txt中.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#pragma warning(disable:4996)
int gettimestamp() {
time_t l_now;
time(&l_now);
return(int)l_now;
}
void randmize(int p_v1) {
srand(p_v1);
}
int rand(int p_min, int p_max) {
return rand() % (p_max - p_min + 1) + p_min;
}
void paixu(int *l_array,int count) {
int l_length = count;
char l_temp;
for (size_t i = 0; i < l_length - 1; i++)
{
for (size_t ii = i + 1; ii <= l_length - 1; ii++)
{
if (l_array[i] < l_array[ii]) {
l_temp = l_array[ii];
l_array[ii] = l_array[i];
l_array[i] = l_temp;
}
}
}
}
//void main() {
//int time = gettimestamp();
//randmize(time);
//int l_length = 10;
//int *p = (int *)calloc(l_length, sizeof(int));
//for (size_t i = 0; i < l_length; i++)
//{
//p[i] = rand(1, 100);
//printf("%d\n", p[i]);
//}
//FILE * write = fopen("1.txt", "w");
//if (write != NULL) {
//char out[20] = { 0 };
//for (size_t i = 0; i < l_length; i++)
//{
//sprintf(out, "%d\n", p[i]);
//fputs(out, write);
//}
//}
//fclose(write);
//free(p);
//system("pause");
//}
void main() {
FILE*read = fopen("1.txt", "r");
char out[20] = { 0 };
int *p = NULL;
int count = NULL;
int length = 10;
if (read != NULL)
{
while (feof(read) == 0) {
fgets(out, length, read);
count++;
p = (int *)realloc(p, count * sizeof(int));
p[count - 1] = atoi(out);
}
}
paixu(p, count);
FILE * write = fopen("2.txt", "w");
if (write != NULL) {
char out[20] = { 0 };
for (size_t i = 0; i < count; i++)
{
sprintf(out, "%d\n", p[i]);
fputs(out, write);
}
}
fclose(read);
free(p);
system("pause");
}