Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2013, 18:09   #1
Mrs_Smitt
Пользователь
 
Аватар для Mrs_Smitt
 
Регистрация: 18.11.2012
Сообщений: 12
По умолчанию Файл действительных чисел. C

Дан текстовый файл, элементами которого являются действительные числа A1,A2,...,An.
Создать файл действительных чисел B1,B2,...Bn, где Bi=Ai/(1+(A1+A2+A3+...+An)^2), i=1,2,...,n.
Пробовала написать код к задаче, но программа зависает уже при введении чисел в файл. Сам файл создает, но он пустой.
Подскажите, пожалуйста, что не верно.

Цитата:
#include <stdio.h>
#include <cstdlib>
#include <math.h>
#include <string.h>

void CreateFile(const char *filename) //функция создания файла
{ FILE *fp;
double x;//переменная для записи
fp=fopen(filename, "w+b");
if(!fp)
{puts("ERROR FOLE NOT OPEN!");
exit(1);
}
puts("Enter numbers,when you end - enter 1111");
scanf("%f",&x);
while(x!=1111) //вот эта проверка не выполняется
{ fwrite((&x),sizeof(double),1,fp);
scanf("%f",&x);
}
fclose(fp);
}

void PrintFile(const char *filename) //функция вывода файла
{FILE *fp;
double x;
fp=fopen(filename, "r+b");
if(!fp)
{puts("ERROR FILE NOT OPEN!");
exit(1);
}
puts ("Printing the file");
fread(&x,sizeof(double),1,fp);
while(!feof(fp))
{fwrite(&x,sizeof(double),1,fp);
fread(&x,sizeof(double),1,fp);
}
fclose(fp);
}

int main()
{ FILE *fp, *fs;
char filename[128];
char sname[128];
double x,a=0,b=0;
puts("Enter the name of file 1");
gets(filename);
puts("Enter the name of file 2");
gets(sname);
CreateFile(filename);
PrintFile(filename);
fp=fopen(filename, "r+b");
if(!fp)
{puts("ERROR FILE NOT OPEN!");
exit(1);
}
fs=fopen(sname,"w+b");
if(!fs)
{puts("ERROR FILE NOT OPEN!");
exit(1);
}
fread(&x,sizeof(double),1,fp);
while(!feof(fp))
{a+=(double)x; //считаем сумму X1,X2,...Xn
b=(double)x/(1+pow(b,2));
fwrite(&a,sizeof(double),1,fp);
}
fclose(fp);
fclose(fs);
puts("file s--------------------");
PrintFile(sname);
system("pause");
return 0;
}
Mrs_Smitt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массив действительных чисел от 1 до 1000 Алексей_2012 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 15 29.08.2015 21:54
Создать типизированный файл n действительных чисел. technomaster Помощь студентам 13 10.03.2012 13:05
преобразовать массив действительных чисел Olka_a Помощь студентам 7 29.12.2011 14:55
преобразовать массив действительных чисел Olka_a Помощь студентам 2 29.12.2011 02:40