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

Найти номер первого вхождения заданного числа в массиве - C++

Восстановить пароль Регистрация
 
MaKN
0 / 0 / 0
Регистрация: 16.12.2013
Сообщений: 29
11.02.2014, 23:25     Найти номер первого вхождения заданного числа в массиве #1
1. Вычислить среднее арифметическое квадратов положительных элементов.
2. Определить количество элементов, имеющих четные порядковые номера и являющихся нечетными числами.
3. Найти максимальный элемент и произведение элементов до него.
4. Четные числа заменить на 0, а нечетные на -1, вывести на экран монитора содержимое массива до обработки и после обработки.
5. Найти номер первого вхождения заданного числа в массиве.

1.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#include "math.h"
#include "iostream"
using namespace std;
void main ()
{int i, a[10], s=0, k=0;
float sr;
for (i=0; i<10; i++)
    cin >> a[i];
for (i=0; i<10; i++)
    if (a[i]>0)
{s=s+pow(a[i], 2.0);
k++;}
sr=s/k;
cout << "sr=" << sr;
system ("pause");
}


2.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 #include "stdafx.h"
#include "iostream"
using namespace std;
void main ()
{int i, a[10];
float k;
for (i=0; i<10; i++)
    cin >> a[i];
k=0;
for (i=0; i<10; i++)
    if (i%2==0 && a[i]%2!=0)
        k++;
cout << "k=" << k;
system ("pause");
}


3.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 #include "stdafx.h"
#include "iostream"
using namespace std;
void main ()
{ int i, a[10], max, maxN, p=1;
for (i=0; i<10; i++)
    cin >> a[i];
max=a[0];
maxN=0;
for (i=0; i<10; i++)
    {if (a[i]>=max)
        {max=a[i];
        maxN=i;}
if (a[i]<=max)
    p=p*a[i];}
cout << "max=" << max;
cout << "p=" << p;
system ("pause");
}


4.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include "iostream"
using namespace std;
void main ()
{ int i, a[10];
for (i=0; i<10; i++)
    cin >> a[i];
for (i=0; i<10; i++)
    if (a[i]%2==0)
        {cout << "a[i]=" << a[i] << endl;
cout << "a[i]=" << 0 << endl;}
    else 
        {cout << "a[i]=" << a[i] << endl;
cout << "a[i]=" << -1 << endl;}
system ("pause");
}




правильно? или нет? и пятую, не могу сообразить как делать=(

Добавлено через 5 минут
а еще у всех начало: Дан массив А из 10 целых чисел введенных с клавиатуры
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2014, 23:25     Найти номер первого вхождения заданного числа в массиве
Посмотрите здесь:

Найти величину и номер первого отрицательного и последнего положительного элементов в массиве C++
Найти номер первого отрицательного числа в массиве C++
В данном одномерном массиве исключите все вхождения заданного числа. Массив уплотните и напечатайте результат C++
Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т C++
C++ Дан массив, упорядоченный по убыванию. Найти номер первого элемента, меньшего заданного числа a
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
11.02.2014, 23:40     Найти номер первого вхождения заданного числа в массиве #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
С 1-3 все норм в роде... я бы только в 1
Цитата Сообщение от MaKN Посмотреть сообщение
s=s+pow(a[i], 2.0)
заменил на
C++
1
s+=a[i]*a[i]
тогда бы #include "math.h" не нужен был. А в 3
p=p*a[i]
записал бы так
C++
1
 p*=a[i]
записи полностью эквиваленты но мой вариант чуточку изящней и пользуется возможностью операторов с++... Так же все таки в 3 правильнее цикл поиска начинать с 1 элемента (хотя Ваш код тоже рабочий):
C++
1
2
maxN=0;
for (i=1; i<10; i++)

А вот с 4 не согласен, вы же хоть выводите но:
1. впермешку;
2. У вас исходный массив остался исходным и не стал обработанным...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "stdafx.h"
#include "iostream"
using namespace std;
void main ()
{ int i, a[10];
for (i=0; i<10; i++)
    cin >> a[i];
cout << "a[i]=" << a[i] << endl;
cout<<"ishodniy massiv:"<<endl;
for (i=0; i<10; i++)    cout << "a[i]=" << a[i] << endl;
for (i=0; i<10; i++)
    if (a[i]%2==0)
         a[i]=0;
    else a[i]=-1;
cout<<"Obrabotaniy massiv:"<<endl;
for (i=0; i<10; i++)    cout << "a[i]=" << a[i] << endl;
system ("pause");
}
А с 5 задачей так она похожа на 3 только вместо поиска максимального числа, искать заданное (я бы использовал правда для этого цикл while)
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
11.02.2014, 23:46     Найти номер первого вхождения заданного числа в массиве #3
Цитата Сообщение от MaKN Посмотреть сообщение
Найти номер первого вхождения заданного числа в массиве.
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>
int main()
{
    size_t arraySize;
    std::cout<<"Input the size: ";
    std::cin>>arraySize;
    int *array  = new int [arraySize];
    std::cout<<"\nInput array of the elements: \n";
    for(size_t i=0; i<arraySize; i++)
        std::cin>>array[i];
    int value;
    std::cout<<"\nInput the value for search: ";
    std::cin>>value;
    for(size_t i=0; i<arraySize; i++)
        if(array[i]==value)
        {
            std::cout<<"\n Position value: "<<i + 1;
            break;
        }
 
    return 0;
}
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
12.02.2014, 00:59     Найти номер первого вхождения заданного числа в массиве #4
1.
Цитата Сообщение от MaKN Посмотреть сообщение
sr=s/k;
Переменные целого типа при делении всегда дают целое число.
3. Чему будет равно произведение, если максимальный элемент массива будет равен его первому элементу?
Yandex
Объявления
12.02.2014, 00:59     Найти номер первого вхождения заданного числа в массиве
Ответ Создать тему
Опции темы

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