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

Не могу найти ошибку в массиве - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
punser
3 / 3 / 1
Регистрация: 18.03.2010
Сообщений: 32
21.05.2011, 09:01     Не могу найти ошибку в массиве #1
Подскажите, что делаю не так.
Задача:
Определить номер и значение первого отрицательного элемента в массиве mas(n). Предусмотреть в программе вывод сообщения, если таковой отсутствует
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h>
#include<iostream.h>
#include<constrea.h>
void main()
{
int i,a;
const n=5;
float mas[n];
for(i=0; i<n; i++)
cin>>mas[i];
do
{
if (mas[i]<0)
mas[i]=a;
else
cout<<"Otricatelnyh elementov net";
i++;
}
while(i<n);
cout<<a;
getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
punser
3 / 3 / 1
Регистрация: 18.03.2010
Сообщений: 32
24.05.2011, 14:59  [ТС]     Не могу найти ошибку в массиве #21
Rexer,
Вот что получается, если использовать Ваш код:
http://i22.***********/big/2011/0524/...c36d1c31a4.jpg
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
24.05.2011, 15:09     Не могу найти ошибку в массиве #22
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#define size 10
int s,n[size],i;
int main(){
    while (i < size)
        std::cin >> n[i++];
    for (i=1; i < size; i+=2)   //2,4,6,8...
        s+=n[i];
    std::cout << s;
    return 0;
}
Rexer
 Аватар для Rexer
151 / 150 / 19
Регистрация: 10.10.2010
Сообщений: 691
24.05.2011, 15:12     Не могу найти ошибку в массиве #23
У меня в codeblocks получается 2.Вы точно мой код скопировали?
Попробуйте так тогда
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
using namespace std;
int main(void)
{
int i;
const int n = 5;
float sum,mas[n];
 
for(i=0; i<n; i++)
cin>>mas[i];
 
for(i=0; i<n; i++)
cout<<mas[i]<<" ";
 
sum = 0;
for(i = 0;i < n;i++)
{
if(i%2!=0)
 sum+=mas[i];
}
cout<<endl<<sum;
}
Хотя я ,если честно,не понимаю,почему у вас выводится такой ответ.
punser
3 / 3 / 1
Регистрация: 18.03.2010
Сообщений: 32
24.05.2011, 15:38  [ТС]     Не могу найти ошибку в массиве #24
Rexer, Огромное спасибо!!! Этот вариант работает. Еще вопросик, а что за строчка
C++
1
using namespace std
. У меня с ней ошибку выкидывает, а когда удаляю всё работает?
co6ak
Кошковед
 Аватар для co6ak
403 / 496 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
24.05.2011, 15:43     Не могу найти ошибку в массиве #25
Цитата Сообщение от punser Посмотреть сообщение
Rexer, Огромное спасибо!!! Этот вариант работает. Еще вопросик, а что за строчка
C++
1
using namespace std
. У меня с ней ошибку выкидывает, а когда удаляю всё работает?
это хорошо что ошибка.
использование этой строчки вредит карме.
где-то на форуме описана насильственная привязка к кодировке
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
24.05.2011, 15:46     Не могу найти ошибку в массиве #26
Т.е. у вас компилируется cin/cout/etc без
C++
1
using namespace std;
Чудеса...
В любом случае, удалите свою IDE
silent_1991
24.05.2011, 16:27
  #27

Не по теме:

Цитата Сообщение от diagon Посмотреть сообщение
Чудеса...
Эти чудеса название имеют - Borland...

diagon
24.05.2011, 16:37
  #28

Не по теме:

Это да, я вот очень долго думал, что на проверяющей системе ******** не работает iostream, т.к. у меня компилировалось, а у них нет... Я на си около 30 задач там сдал, пока не узнал истину=)
Но имхо как IDE билдер удобнее MSVS будет. Сейчас на линукс пересел, после билдера на code::blocks и эклипсе крайне неудобно писать.

Rexer
 Аватар для Rexer
151 / 150 / 19
Регистрация: 10.10.2010
Сообщений: 691
24.05.2011, 16:52     Не могу найти ошибку в массиве #29
C++
1
using namespace std
это стандартное пространство имен,его лучше не использовать,лучше писать так
C++
1
std::cout<<sum;
,то что я написал считается плохим тоном и почти ошибкой
я написал,чтобы быстрее пример посмотреть,программа у вас маленькая же.
Почему у вас компилируется программа без этой строчки я не понимаю,скорее всего это ваш IDE чудит)
Первый вариант программы моей тоже рабочий,но ваш компилятор видимо не так понял строчку
C++
1
2
3
do{
i++;
}while();
Это бывает.Так как разные компиляторы немного по-разному понимают когда к i прибавлять единичку)
Мой вам совет - перейдите на более простые IDE.
Типа Dev Cpp хотя бы.Иначе замучаетесь с борландом.

Добавлено через 1 минуту
Цитата Сообщение от diagon Посмотреть сообщение
Не по теме:
Это да, я вот очень долго думал, что на проверяющей системе ******** не работает iostream, т.к. у меня компилировалось, а у них нет... Я на си около 30 задач там сдал, пока не узнал истину=)
Но имхо как IDE билдер удобнее MSVS будет. Сейчас на линукс пересел, после билдера на code::blocks и эклипсе крайне неудобно писать.
И в чем же была истина,уважаемый Диагон?
asics
24.05.2011, 16:55
  #30

Не по теме:

Цитата Сообщение от Rexer Посмотреть сообщение
И в чем же была истина,уважаемый Диагон?
Читай подпись(мою)

diagon
24.05.2011, 16:55
  #31

Не по теме:

Что using namespace std; хотя бы писать нужно. Билдер на такие мелочи не отвлекается, он компилирует все, что видит. Включая такой код

C++
1
2
3
main(){
exit(0);
}

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2011, 19:23     Не могу найти ошибку в массиве
Еще ссылки по теме:

Не могу найти ошибку C++
Не могу найти ошибку в массиве C++
Не могу найти ошибку C++

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

Или воспользуйтесь поиском по форуму:
lamed
297 / 297 / 71
Регистрация: 07.05.2011
Сообщений: 592
24.05.2011, 19:23     Не могу найти ошибку в массиве #32
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
// Определить номер и значение первого отрицательного элемента в
// массиве mas(n). Предусмотреть в программе вывод сообщения, если таковой отсутствует
/// #include<stdio.h>
 
// G++/Code::Blocks
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
 
/// #include<iostream.h>
/// #include<constrea.h>
int main()
{
    int i, a;
    const int n=5;
    float mas[n];
 
    for(i=0; i<n; i++)
        cin>>mas[i];
    for (i=0; i<n && mas[i]>=0; i++)
        ;
    if (i<n)
        cout<<i<<' '<<a[i] <<endl;
    else
        cout<<"Otricatelnyh elementov net" << endl;
 
    system("pause");
///    getch();
    return 0;
}
Yandex
Объявления
24.05.2011, 19:23     Не могу найти ошибку в массиве
Ответ Создать тему
Опции темы

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