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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2012, 01:57   #1
tankograd
 
Регистрация: 20.05.2012
Сообщений: 3
По умолчанию Работа с текстовыми файлами

Помогите пожалуйста!

Задача следующая:
Случайным образом создать таблицу пар значений и записать её в текстовый файл в виде:
a b c
5.2 4.6 2.5 можно
1.2 8.9 2.3
-------------------------
Считать из файла записанные данные и определить, можно ли построить треугольник с такими сторонами. В соответствующих строках (где можно), указать площадь полученного треугольника (в другом файле).

Получается всё, кроме считывания информации записанной в первый файл,в итоге во второй записываются последние срандомированные числа...
tankograd вне форума Ответить с цитированием
Старый 23.05.2012, 07:59   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Считывается как?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.05.2012, 08:56   #3
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

И записываются как ? Будем в телепатов играть.
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 24.05.2012, 00:42   #4
tankograd
 
Регистрация: 20.05.2012
Сообщений: 3
По умолчанию

int main()
{
setlocale(LC_ALL,"Russian");
time_t t;
srand(time(&t));
int n;
float a,b,c,p,S;
FILE*fp,*fp1;
fp=fopen("lab.txt","w");
if(!fp)
{
cout << "Не могу создать файл!!!";
exit(1);
}
cout<<"Введите количество строк ";
cin>>n;
printf("\t\ta\t\tb\t\tc\n");
for (int i=0;i<n;i++)
{
a=(float) rand() / RAND_MAX * 10+1;
b=(float) rand() / RAND_MAX * 10+1;
c=(float) rand() / RAND_MAX * 10+1;
printf("\t\t%2.1f \t\t%2.1f \t\t%2.1f\n",a,b,c);
fprintf(fp,"%2.1f,%2.1f,%2.1f\n",a, b,c);
}
fclose(fp);
fp=fopen("lab.txt","r");
fp1=fopen("lab1.txt","w+");
cout<<"Проверим, какая тройка чисел, может образовать треугольник "<<endl;
if(!fp1)
{
cout << "Не могу создать файл!!!";
exit(1);
}

printf("\t\ta\t\tb\t\tc\n");

for (int i=0;i<n;i++)
{
fscanf(fp,"%2.1f,%2.1f,%2.1f\n",&a, &b,&c);

if ((a<b+c)&&(b<a+c)&&(c<a+b))
{
p=(a+b+c)/2;
S=sqrt(p*(p-a)*(p-b)*(p-c));
printf("\t\t%2.1f \t\t%2.1f \t\t%2.1f \tможно \tS=%2.1f\n",a,b,c,S);
fprintf(fp1,"%2.1f,%2.1f,%2.1f,можн о,S=%2.1f\n",a,b,c,S);
}
else
{
printf("\t\t%2.1f \t\t%2.1f \t\t%2.1f\n",a,b,c);
fprintf(fp1,"%2.1f,%2.1f,%2.1f\n",a ,b,c);
}
}
fclose(fp1);
fclose(fp);
return 0;
}

После выполнения например выводит:
9,1, 8,0, 3,4
9,2, 6,5, 2,6
8,8, 6,9, 8,1
5,9, 8,1, 10,1 это первый файл из которого надо будет прочесть инфу,тут всё ок,

а вот во втором оказывается только следующее:

5,9, 8,1, 10,1, можно, S=24,0
5,9, 8,1, 10,1, можно, S=24,0
5,9, 8,1, 10,1, можно, S=24,0
5,9, 8,1, 10,1, можно, S=24,0
tankograd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с текстовыми файлами Арнис Фриланс 9 05.01.2011 18:50
Работа с текстовыми файлами A_Orlov Паскаль, Turbo Pascal, PascalABC.NET 1 14.06.2010 14:49
работа с текстовыми файлами metallldoctor Помощь студентам 0 10.01.2010 15:28
Работа с текстовыми файлами hascker Паскаль, Turbo Pascal, PascalABC.NET 6 14.09.2009 19:01
Работа с текстовыми файлами DartMrakkk Общие вопросы Delphi 3 14.07.2007 16:52