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

Последовательность. - C++

Восстановить пароль Регистрация
 
Ierehon
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 130
20.09.2011, 20:06     Последовательность. #1
Доброго времени суток. Код вроде правильный но не запускается ругается на две ошибки. Хотя скидывал программисту говорит что рабочий.

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
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <conio.h>                
 
void main()
{
long int i,j=0,n;
double b,tmp,tmp2;
 
std::cout << "===\n Дана неубывающая последовательность действительных чисел  a1, a2, …an.Вставить действительное число b в нее так, \nчтобы последовательность осталась неубывающей.\n";
 
 
//вводим размерность массива
std::cout << "\nВведите n: ";
std::cin >> n;
std::cout << "\nВведите b: ";
std::cin >> b;
//выделяем память под массив
double *m=new double(n+1);
 
 
//заносим значения в массив
std::cout<<"\n";
for(i=0;i<n;i++)
{
     std::cout<<"\nВведите "<<i<<"-й элемент:";
     std::cin >> m;
}
 
std::cout<<"\nИсходная последовательность:\n";
for(i=0; i<n;i++)
{
     std::cout<<m<<" ";
}
//ищем элемент с которого сдвигать массив
for(j=0;j<n;j++)
{
      if(m[j]>b) break;     
}
//сдвигаем массив
for(i=n+1;i>j;i--)
{
     m=m[i-1];
}
//заносим b на полученную позицию
m[j]=b;
 
//выводим полученный массив
std::cout<<"\nПоследовательность после добавления:\n";
for(i=0; i<n+1;i++)
{
     std::cout<<m<<" ";
}
//освобождаем память
delete m;
getch();
}
В моем случае ему ненравиться

C#
1
   m=m[i-1];
и

C#
1
std::cin >> m;
В чем может быть проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2011, 20:06     Последовательность.
Посмотрите здесь:

Последовательность C++
Преобразовать литерную последовательность в другую литерную последовательность всеми описанными ниже способами C++
Последовательность C++
C++ Вводить последовательность вещественных чисел, пока следующее вводимое число не окажется меньше предыдущего. Вывести полученую последовательность.
C++ Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить последовательность по убыванию произведений цифр
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
20.09.2011, 20:11     Последовательность. #2
Цитата Сообщение от Ierehon Посмотреть сообщение
std::cin >> m;
Цитата Сообщение от Ierehon Посмотреть сообщение
std::cout<<m<<" ";
C++
1
2
std::cin>>m[i];
std::cout<<m[i]<<" ";
Цитата Сообщение от Ierehon Посмотреть сообщение
m=m[i-1];
Не понял, что вы хотите здесь сделать.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
20.09.2011, 20:13     Последовательность. #3
Цитата Сообщение от Ierehon Посмотреть сообщение
две ошибки
покажете мб ошибки?
MILAN
20.09.2011, 20:14
  #4

Не по теме:

Ierehon, зачем выделять тегами С#?

dyus
2 / 2 / 0
Регистрация: 20.09.2011
Сообщений: 8
20.09.2011, 20:15     Последовательность. #5
зря влез уже написали, смысле я зря
Ierehon
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 130
20.09.2011, 20:23  [ТС]     Последовательность. #6
Ошибка раз.
C#
1
m=m[i-1];
1 IntelliSense: значение типа "double" нельзя присвоить сущности типа "double *"
Вторую поправили, спасибо MILAN, вроде пропала.

MILAN, потому что оболочку шарпа использую при написании консольного приложения.

Сообщение от Ierehon Посмотреть сообщение
m=m[i-1];
Не понял, что вы хотите здесь сделать.
это ссылка на массив.
C#
1
2
//выделяем память под массив
double *m=new double(n+1);
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
20.09.2011, 20:42     Последовательность. #7
Ierehon, во-первых, это не ссылка на массив, а указатель на массив. Во-вторых, что бы вы там не использовали, текст программы - на C++. Не вводите людей в заблуждение.

Добавлено через 1 минуту
Подозреваю, что вместо m=m[i-1]; должно было быть m[i] = m[i-1], раз уж вы сдвигаете массив.
Ierehon
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 130
20.09.2011, 21:04  [ТС]     Последовательность. #8
talis, спасибо но это я уже понял. Просьба к вам, пожалуйста указывайте на весомые ошибки. Вы с этими комментариями уже во второй теме террорите. А то что в данной программе половина массива не объявлена это Вы не указали.

Всем спасибо, вопрос решил, тема закрыта.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2011, 21:06     Последовательность.
Еще ссылки по теме:

Последовательность C++
последовательность C++
Если последовательность отсортирована по возрастанию, оставить ее без изменения. Иначе получить иную последовательность C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
dyus
2 / 2 / 0
Регистрация: 20.09.2011
Сообщений: 8
20.09.2011, 21:06     Последовательность. #9
у меня заработало как надо, ошибки вроде отметил, ну и вобщем сам посмотри на то, что было и то, что вышло. Я сам неособо разбираюсь еще. И да про указатели почитай, а то совсем беда с ними была
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
int main(int argc, char* argv[])
{
 
long int i,j=0,n;
double b,tmp,tmp2;
 
std::cout << "===\n Дана неубывающая последовательность действительных чисел  a1, a2, …an.Вставить действительное число b в нее так, \nчтобы последовательность осталась неубывающей.\n";
 
 
//вводим размерность массива
std::cout << "\nВведите n: ";
std::cin >> n;
std::cout << "\nВведите b: ";
std::cin >> b;
//выделяем память под массив
double *m=new double(n+1);
 
 
//заносим значения в массив
std::cout<<"\n";
for(i=0;i<n;i++)
{
     std::cout<<"\nВведите "<<i<<"-й элемент:";
     std::cin >> m[i];
}
 
std::cout<<"\nисходная последовательность:\n";
for(i=0; i<n;i++)
{
     std::cout<<m[i]<<" "; //тут поправил
}
//ищем элемент с которого сдвигать массив
for(j=0;j<n;j++)
{
      if(m[j]>b)
       break;
}
//сдвигаем массив
for(i=n+1;i>j;--i)   // и тут поправил
{
        tmp=m[i];
        m[i]=m[i-1];
        m[i-1]=tmp;
}
//заносим b на полученную позицию
m[j]=b;
 
//выводим полученный массив
std::cout<<"\nПоследовательность после добавления:\n";
for(i=0; i<n+1;i++)
{
     std::cout<<m[i]<<" ";
}
//освобождаем память
delete m;
getch();
}
Yandex
Объявления
20.09.2011, 21:06     Последовательность.
Ответ Создать тему
Опции темы

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