Форум программистов, компьютерный форум CyberForum.ru

Сортировка массива и запись в файл - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти слова, которые начинаются на заданную букву http://www.cyberforum.ru/cpp-beginners/thread213989.html
дана задача. найти слова, которые начинаются на заданную букву. мне нужна функция которая находит эти слова
C++ Ввести и вывести текст на консоль Нужно простая работа с текстом нужно ввести текст(с пробелами т.е. cin - неподойдет) и вывести введенный текст также с пробелами со всем. вот собственно и все. Может кто помочь? http://www.cyberforum.ru/cpp-beginners/thread213985.html
Блок-Схемы C++
Доброго временя суток, знатоки) У меня вопрос-можно ли устроить рисовку блок-схемы используя данные которые достает программа?(В программе для разбора должны присутствовать только ф-ции main, for, if\else, cin+cout и различные присваивания и определения, т.е. вроде как все данные, которые достает кнопка обработать.) З.Ы. среда разработки - 6ой борланд с++
C++ Найти произведение между соответствующими числами первой и второй строки и вывести результат на экран
Разработать программу, выполняющую обработку строк в соответствии с заданием для вашего варианта. Исходные строки вводятся с клавиатуры при помощи функции gets. Обработка строк должна осуществляться посимвольно. Использование функций scanf и sscanf не допускается. С клавиатуры вводятся две строки, содержащие одинаковое количество вещественных. Числа разделены между собой пробелом. Найти...
C++ Массивы слов, строк http://www.cyberforum.ru/cpp-beginners/thread213750.html
Строка текста - слова, пробелы, знаки препинания. Текст размещен в одной или нескольких строках без переноса слов со строки на следующую строку. Выделить из текста слова длины больше 2 указать пары слов, являющихся зеркальным отображением друг друга ( например, ворон - норов, трак - карт ).
C++ Одномерные массивы Среди некоторого количества точек плоскости указать пару точек, которые максимально удалены друг от друга. подробнее

Показать сообщение отдельно
Anastasiya_1692
 Аватар для Anastasiya_1692
1 / 1 / 1
Регистрация: 30.12.2009
Сообщений: 53
18.12.2010, 17:14     Сортировка массива и запись в файл
Доброго времени суток!

Задание:
Файл содержит вещественные числа. Записать все положительные числа в порядке возрастания в файл positive.txt, а отрицательные числа в порядке убывания в файл negative.txt.

Проблема с сортировкой элементов. Не понимаю в чем дело:

C++
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(int argc, char* argv[])
{double otr[10],pol[10],ch;
int kol=0,i=0,j=0,kol_otr=0,kol_pol=0;
FILE *ishf;
printf ("Neobhodimo vvesti ishodnie chisla\n");
printf ("Vvedite koli4estvo chisel: ");
scanf ("%d", &kol);
ishf=fopen ("ishodn.txt","w");
 for ( i=0;i<kol;i++){
  scanf("%lf", &ch);
  fprintf(ishf,"%lf\n",ch);
  }
i=0;  
if (fclose(ishf)==0) printf ("Bil sozdan file ishodn.txt\n");
ishf=fopen ("ishodn.txt","r");
while (!feof(ishf)){
 fscanf(ishf, "%lf\n", &ch);
  if (ch>0){
   pol[i]=ch;
   i++;
   kol_pol++;
  }
  if (ch<0){
   otr[j]=ch;
   j++;
   kol_otr++;
  }
}  
for (i=0;i<kol_pol-1;i++)
 for (j=1;j<kol_pol;j++)
   if (pol[i]>pol[j]){
   ch=pol[i];
   pol[i]=pol[j];
   pol[j]=ch;
   }
 
for (i=0;i<kol_otr-1;i++)
 for (j=1;j<kol_otr;j++)
   if (otr[i]<otr[j]){
   ch=otr[i];
   otr[i]=otr[j];
   otr[j]=ch;
   }
 
fclose(ishf);
FILE *polf;
polf=fopen ("positive.txt","w");
printf ("Polozhitel'nie chisla:\n");
 for ( i=0;i<kol_pol;i++){
   fprintf(polf,"%lf\n",pol[i]);
   printf ("Chislo %lf bilo zapisano v fail positive.txt\n", pol[i]);
 }
fclose(polf);
FILE *otrf;
printf ("Oritsatel'nie chisla:\n");
otrf=fopen ("negative.txt","w");
 for ( i=0;i<kol_otr;i++){
   fprintf(otrf,"%lf\n",otr[i]);
   printf ("Chislo %lf bilo zapisano v fail negative.txt\n", otr[i]);
 }  
fclose(otrf);
 getch();
 
        return 0;
}
Помогите, пожалуйста, найти ошибку и, если можно объясните, что было не так. Заранее всем спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru