Поиск И Замена Числа В Файле (си)

Untiy16

New Member
20.04.2014
1
0
#1
Программа на СИ
Дай файл целых чисел a1 ,...,an , что упорядочены по убыванию. Найти заданный элемент x. Если элемента х нет, то вставить его в файл так, чтобы файл остался упорядоченным по убыванию.

Вот мой код: программа ищет элемент х. Помогите пожалуйста реализовать вставку элемента в файл если он не найден.

C++:
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <stdlib.h>
#include <math.h>

FILE* createFileAuto(FILE *fp, int n)			 
{
int cur;
int i=0;
for (int i=n;i>0;i--)
{
cur=i;
fwrite(&cur, sizeof(int), 1, fp);
}
return fp;
}

FILE* printFile (FILE* fp, int n)
{
int cur;
printf("\nСозданный файл:\n");
for (int i=5;i<n;i++)
{
fread(&cur, sizeof(int), 1, fp);
printf("%d ", cur);
}
return fp;
}


int main()
{
setlocale(LC_ALL,"rus");

FILE * fp;
int x;
int n;
printf("Введите количество чисел n>10 : ");
start:
scanf("%d", &n);
if (n<1)
{
printf("(n>0): ");
goto start;
}
if((fp=fopen("lab_15.txt","w+b"))==NULL)
{
printf("Ошибка при создании файла!\n");
getch();
exit(1);
}
createFileAuto(fp,n);
fclose(fp);

if((fp=fopen("lab_15.txt","r+b"))==NULL)
{
printf("Ошибка при открытии файла!\n");
getch();
exit(1);
}

printFile(fp,n);

printf("\n\nВведите х: ");
scanf("%d", &x);
int s=0, i=0;
fseek(fp,0,SEEK_SET);
int cur;
while (!feof(fp))
{
i++;
fread(&cur, sizeof(int), 1, fp);
if (cur==(x))
{
s=1;
printf("\nЧисло x (%d) находится на %d позиции.", cur, i);
}
}
if (s==0)
printf("\nСреди данных чисел нет x");