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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 192
#1

массив - C++

23.11.2009, 18:58. Просмотров 1418. Ответов 22
Метки нет (Все метки)

Массив M (100) содержит целые числа. Поменять знак у элементов, номер которых оканчивается на 2 или на 9.
подскажите пожалуйста как вводить элементы массива с клавиатуры
я знаю часть программы и проверьте пжлста.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <conio.h>
int main()
{ 
   int mas[30];
int i;
   for(i=0;i<30;i++)
    printf("%d ",mas[i]);
    
  if((i%10==2)&&(i%10==9))
  {
    mas[i]-=2*mas[i];
 
}
    
    printf("%d ",mas[i]);
    
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2009, 18:58     массив
Посмотрите здесь:

C++ с клавиатуры ввести массив,во второй массив записать нечетные элементы из первого
Дан массив А(4,4). Сформировать массив В(4) из среднеарифметических значений элементов в каждой строке. C++
Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька C++
Переписать положительные элементы массива K,кратные пяти в массив M,а остальные-в массив Q. C++
C++ Дан массив целых чисел,произвести для него следующие операции: для каждого из чисел ,входящего в массив,указать,сколько раз оно входит в массив...
C++ Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента, и имеющие нечетный индекс. Массив В отсортировать
Массив: найти номера столбцов с положительными элементами и записать их в одномерный массив C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
23.11.2009, 19:07     массив #2
Поправил у тебя часть кода
C++
1
2
3
4
5
6
7
8
9
10
   for(i=0;i<2;i++)
    {
    cin>>mas[i];
  if((mas[i]%10==2)&&(mas[i]%10==9))
  {
    mas[i]-=mas[i];
}
    cout<<mas[i]<<"\n";
    }
    getch();

Насчет "оканчивается номер" я не совсем понял
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 192
23.11.2009, 19:23  [ТС]     массив #3
ваша программа не работает...
и еще в задании сказано номер элемента а не сам элемент,
все равно спасибо

Добавлено через 5 минут
ну то есть каждый 2,9,12,19,22,29 и т.д. элемент меняет знак
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
23.11.2009, 19:36     массив #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <vcl.h>
#pragma argsused
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
using namespace std;
void main()
{
int mas[10];
int i;
   for(i=0;i<10;i++)
    {
    cin>>mas[i];
  if((i%10==2)&&(i%10==9))
  {
    mas[i]=-mas[i];
  }
    }
    cout<<mas[i]<<"\n";
    getch();
}

Так?
Компилит, работает неправильно.

Добавлено через 3 минуты
Сразу хочу обратить Ваше внимание, что здесь есть несколько ошибок.
Одна из них - то, что меняется знак массива, а не элемента

Я исправил ошибки именно в синтаксисе, а с алгоритмом подумайте.

Добавлено через 3 минуты
Алгоритм высчитывания верный, допер.
Но все равно он работает не как надо
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 192
23.11.2009, 19:37  [ТС]     массив #5
mas[i]-=2*mas[i];
а почему тогда прога та не работает, уже не могу...
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
23.11.2009, 19:41     массив #6
Так Вы смотрите, что Вы делаете
mas[i]=2*mas[i]-mas[i]
Зачем это? Все равно получается тот же самый mas[i]
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 192
23.11.2009, 19:44  [ТС]     массив #7
а разве
знак
mas[i]-=2*mas[i]
это же вот так, или я совсем крышу потерял
mas[i]=mas[i]-2*mas[i]

Добавлено через 2 минуты
а прога выдает все время 0, с чего бы это? как вы думаете?
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
23.11.2009, 19:45     массив #8
Ах.. Нет, это, оказывается, я крышу потерял.
Теперь понятно.
Но Вы все равно вычитаете из массива квадрат массива, хотя надо менять знак у элемента
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 192
23.11.2009, 19:47  [ТС]     массив #9
почему квадрат?
я написал что у элемента с i порядком отнимаю удвоенное произведение этого же элемента, и следовательно мы получаем - элемент, разве не так?
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
23.11.2009, 19:48     массив #10
Да вот потому что.
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
#include <vcl.h>
#pragma hdrstop
#pragma argsused
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <math.h>
using namespace std;
void main()
{
int mas[10];
int i=1,k;
   for(k=0;k<=9;k++)
    {
    i++;
    cin>>mas[i];
  if ((i%10==2)&&(i%10==9))
  {
  cout<<"Hello World";
  }
    }
    cout<<mas<<"\n";
    getch();
}
Потестите. Ничего он не выведет.
Неправильно считает номер элемента массива.

Добавлено через 43 секунды
Цитата Сообщение от so1o Посмотреть сообщение
почему квадрат?
я написал что у элемента с i порядком отнимаю удвоенное произведение этого же элемента, и следовательно мы получаем - элемент, разве не так?
Да, да.
Мне, пожалуй, спать пора.
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 192
23.11.2009, 19:52  [ТС]     массив #11
нет 2*элемент ((:

Добавлено через 25 секунд
т.е. 1 элемент - 2 элемента=-элемент ??

Добавлено через 2 минуты
ахх жаль... мне это теперь самому доделавать придется, ибо потом сдавать...
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
23.11.2009, 19:52     массив #12
C++
1
2
3
4
  if ((i%10==2)&&(i%10==9))
  {
  cout<<"Hello World";
  }
Потестите цикл вот этот. Он не будет выводить.
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 192
23.11.2009, 19:54  [ТС]     массив #13
он мне выдает вообще бяку
0xffe2
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
23.11.2009, 19:56     массив #14
Я это дал, чтобы Вы вставили в программу и погоняли.
О.К. вот весь код. Пробуйте.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <vcl.h>
#pragma hdrstop
#pragma argsused
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <math.h>
using namespace std;
void main()
{
int mas[10];
int i=0,k;
   for(k=0;k<=9;k++)
    {
    cin>>mas[i];
  if ((i%10==2)&&(i%10==9))
  {
  cout<<"Hello World";
  }
    }
    cout<<mas[i]<<"\n";
    getch();
}
Он должен выводить "Хеллоу Ворлд" когда остаток от деления номера элемента массива равен 2 или 9.
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 192
23.11.2009, 19:59  [ТС]     массив #15
во первых у меня проблема,
у меня нет библиотеки vcl.h
во вторых программа почему то показывает последнюю цифру, непонятно почему...
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
23.11.2009, 20:02     массив #16
vcl.h можете не писать, у меня Билдер 6.

Так понятно - он выводит mas[i], т.е. последнее записавшееся значение.

Добавлено через 51 секунду
И, кстати, исправте в цикле && на ||
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 192
23.11.2009, 20:10  [ТС]     массив #17
аа да я забыл, ща исправлю,

Добавлено через 6 минут
опа, я получил хеллоу ворлд, после того как исправил k на i ,
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
23.11.2009, 20:14     массив #18
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
#include <vcl.h>
#pragma hdrstop
#pragma argsused
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <math.h>
using namespace std;
void main()
{
int mas[10];
int i=1;
   for(i=1;i<=10;i++)
    {
    cin>>mas[i];
  if ((i%10==2)||(i%10==9))
  {
      mas[i]-=2*mas[i];
  }
      cout<<"   "<<mas[i]<<"\n";
    }
    getch();
 
}
Кол-во элементов подредактируйте
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 192
23.11.2009, 20:31  [ТС]     массив #19
ура, спасибо!
только нельзя ли как нибудь по иначе отрожались элементы а не так как здесь?))

Добавлено через 4 минуты
да я отредактировал! спасибо большое(:
уффф сколько же мы флуда развели(:

Добавлено через 8 минут
а хотя как говорится если работает не чини ((:
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2009, 20:32     массив
Еще ссылки по теме:

C++ Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив.
Массив: Как скопировать двумерный массив в другой массив? C++
C++ Дан массив. Записать во второй массив все элементы, не совпадающие с минимальным
Сжать массив, выбросив из него отрицательные элементы - массив становится пустым C++
Заполнить массив первыми ста простыми числами, и вывести массив на экран C++

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

Или воспользуйтесь поиском по форуму:
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
23.11.2009, 20:32     массив #20
Можно. Как Вы хотите?
Yandex
Объявления
23.11.2009, 20:32     массив
Ответ Создать тему
Опции темы

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