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

Массив - C++

Восстановить пароль Регистрация
 
angel12
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 15
22.01.2011, 20:05     Массив #1
Разработать программу которая бы сохраняла упорядоченность последовательности после того как в нее вставляется задаваемое число...Данные считываются из файла и дозаписываются туда же
Вот мои нароботки помогите плиз

#include<conio.h>
#include<iostream.h>
#include<fstream.h>
#include<iomanip.h>

int*p;
int vvod();
int vivod(int n);
int obrab(int n);
fstream fp,fp1;
int main()
{clrscr();
int n;
n=vvod();
vivod(n);
obrab(n);
getch();

}
int vvod()
{int n;
fp.open("C:\\TEMP\\exz.txt",ios::in);
fp>>n;
p=new int[n];
for(int i=0;i<n;i++)
fp>>p[i];
return(n);
}
int vivod(int n)
{for(int i=0;i<n;i++)
cout<<setw(4)<<p[i];
return(0);

}
int obrab(int n)
{
int i,j,d,y;cout<<"vvdeite 4islo";cin>>j;
for (i=0;i<n;i++)
{ if ((p[i-1]<j)&&(p[i]>j))
d=i;break;
}
n++;
for(i=n-1;i>d;i--)
{p[i+1]=p[i];}

{ p[d]=j;

}



fp.close();
fp1.open("C:\\TEMP\\exz.txt",ios::out|ios::app);
for(int i=0;i<n;i++)
fp1<<p[i];
fp1.close();
return(0);
fp.close();
fp1.open("C:\\TEMP\\exz.txt",ios::out|ios::app);
for(int i=0;i<n;i++)
fp1<<p[i];
fp1.close();
return(0);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2011, 20:05     Массив
Посмотрите здесь:

C++ Массив: Сформируйте массив C[n+m], состоящий из элементов массивов А и В, упорядоченный по возрастанию.
Дан массив A[N]. заполнить массив В[N] элементами массива A[N], которые удовлетворяют двойному неравенству C++
C++ Найти ошибку. Записать 20 целых чисел в массив. Переписать отрицательные в массив А, а положительные в Б
Файлы и массив (сделать так, чтобы массив заполнялся значениями из этого же файла) C++
C++ Включить новый элемент в массив, упорядоченный по возрастанию, с сохранением упорядоченности. (рандомный массив)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
killboss
 Аватар для killboss
57 / 57 / 2
Регистрация: 18.12.2010
Сообщений: 127
22.01.2011, 20:14     Массив #2
А что не так?
Код не компилируется? Выдаёт неправильные результаты? или ещё что-то?
angel12
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 15
22.01.2011, 20:17  [ТС]     Массив #3
Цитата Сообщение от killboss Посмотреть сообщение
А что не так?
Код не компилируется? Выдаёт неправильные результаты? или ещё что-то?
Выдает неправильные ответы,ошибка где-то в обработке((
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
22.01.2011, 21:20     Массив #4
angel12, См комментарии:
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
#include<conio.h>
#include<iostream.h>
#include<fstream.h>
#include<iomanip.h>
 
int*p;
int vvod();
int vivod(int n);
int obrab(int n);
fstream fp,fp1;
int main()
{clrscr();
int n;
n=vvod();
vivod(n);
obrab(n);
getch();
 
}
int vvod()
{int n;
fp.open("C:\\TEMP\\exz.txt",ios::in);
fp>>n;
p=new int[n];// Вы создали массив для хранения n элементов. Потом Вы хотите вставить туда число. Но размер массива не меняется, он так и остается n. Может быть тогда стоит массив сразу создать размером n+1 ?
for(int i=0;i<n;i++)
fp>>p[i];
return(n);
}
int vivod(int n)
{for(int i=0;i<n;i++)
cout<<setw(4)<<p[i];
return(0);
 
}
int obrab(int n)
{
int i,j,d,y;cout<<"vvdeite 4islo";cin>>j;
for (i=0;i<n;i++)
{ if ((p[i-1]<j)&&(p[i]>j))// при i равном 0 выход за пределы массива, получится что обращаетесь к элементу с индексом -1. Кроме того введенное число может самое большое среди существующих чисел, тогда чему равно d ? А со значением d Вы дальше работаете.
d=i;break;
}
n++;
for(i=n-1;i>d;i--)
{p[i+1]=p[i];}
 
{ p[d]=j;
 
}
 
 
 
fp.close();
fp1.open("C:\\TEMP\\exz.txt",ios::out|ios::app);
for(int i=0;i<n;i++)
fp1<<p[i];
fp1.close();
return(0);
fp.close();
fp1.open("C:\\TEMP\\exz.txt",ios::out|ios::app);
for(int i=0;i<n;i++)
fp1<<p[i];
fp1.close();
return(0);
}
Yandex
Объявления
22.01.2011, 21:20     Массив
Ответ Создать тему
Опции темы

Текущее время: 13:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru