Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
SmokeGG
0 / 0 / 1
Регистрация: 25.10.2013
Сообщений: 23
1

Найти индекс первого нулевого элемента массива

02.11.2013, 22:18. Просмотров 1177. Ответов 14
Метки нет (Все метки)

Разработать программу с использованием функции пользователя вычисления заданной хар-ки одномерного массива. Заданы векторы А,В,С, которые содержат n,m,k элементов соответственно.
Для каждого из них определить :
Индекс i первого нулевого элемента.

Ребята, помогите решить задачу.С меня +
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2013, 22:18
Ответы с готовыми решениями:

Определить индекс первого нулевого элемента
Доброе утро! Нужна помощь не могу понять как это сделать. Определить индекс первого нулевого...

Найти произведение всех элементов массива, начиная с нулевого. Если нулевого элемента нет - вывести (-1)
В одномерном массиве, состоящем из n элементов найти: произведение всех элементов, начиная с...

Вычислить сумму четных элементов одномерного массива до первого встречного нулевого элемента
Вычислить сумму четных элементов одномерного массива до первого встречного нулевого элемента.

Найти сумму положительных элементов первой строки матрицы, расположенных после первого нулевого элемента
Определить величину Y, как сумму положительных элементов первой строки матрицы, расположенных после...

В массиве Х найти наиболее короткую серию элементов, чередующихся по знаку вывести индекс первого ее элемента
Ребят помогите плиз с лабой на Си! Никак не могу вдуплиться) Задание: В массиве Х найти наиболее...

14
Simak63
29 / 29 / 21
Регистрация: 19.02.2011
Сообщений: 136
02.11.2013, 22:58 2
Вот для первого массива A [n], для B [m] и C [k] думаю сделаешь
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
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <clocale>
#include <iomanip>
#include <ctime>
 
#define    n   10;
 
using namespace std;
 
 
int _tmain()
{
    setlocale (LC_ALL,"Russian");
    srand (time(NULL));
 
 
    int A [n];
 
    printf ("Исходный массив: \n");
    for ( int i = 0; i<n; i++ )
    {
        A[i] = rand () % 3;
        printf ("%d", setw (3))
       printf ("%d", A[i]);
    }
 
   printf ("\n");
 
 
    int first_null; 
    for ( int i = 9; i>0; i-- )
    {
        if ( A[i] == 0 )
            first_null = i;
    }
 
    printf ("Индекс первого нулевого элемента: " , first_null);
 
    getch();
    return 0;
}
1
SmokeGG
0 / 0 / 1
Регистрация: 25.10.2013
Сообщений: 23
03.11.2013, 00:10  [ТС] 3
Находит кучу ошибок с
#include <clocale>
#include <iomanip>
#include <ctime>
и.тд
Нам просто в универе нужно писать на борланде 3.1.
Можно ли как то под него переделать ?
0
Ryuk
179 / 177 / 56
Регистрация: 10.06.2011
Сообщений: 871
03.11.2013, 00:25 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

SmokeGG, вроде так
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
#include <stdio.h>
#include <conio.h>
#include <time.h>
 
#define    n   10;
 
using namespace std;
 
 
int _tmain()
{
    setlocale (LC_ALL,"Russian");
    srand (time(NULL));
 
 
    int A [n];
 
    printf ("Исходный массив: \n");
    for ( int i = 0; i<n; i++ )
    {
        A[i] = rand () % 3;
        printf ("%d", setw (3))
       printf ("%d", A[i]);
    }
 
   printf ("\n");
 
 
    int first_null; 
    for ( int i = 9; i>0; i-- )
    {
        if ( A[i] == 0 )
            first_null = i;
    }
 
    printf ("Индекс первого нулевого элемента: " , first_null);
 
    getch();
    return 0;
}
1
SmokeGG
0 / 0 / 1
Регистрация: 25.10.2013
Сообщений: 23
03.11.2013, 01:21  [ТС] 5
Ryuk, печаль =)
Но спс за помощь.
0
Миниатюры
Найти индекс первого нулевого элемента массива  
Ryuk
179 / 177 / 56
Регистрация: 10.06.2011
Сообщений: 871
03.11.2013, 09:40 6
SmokeGG, вы написали про директивы, я и посмотрел только директивы. Ваш код был написан частично на С++. И тот кто его писал, компилировал его как С++. Вот, должен быть рабочий вариант:
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
#include <stdio.h>
#include <time.h>
 
#define n 10
 
int main()
{
    srand (time(NULL));
     int A[n];
 
    printf ("Original: \n");
 
    for ( int i = 0; i < n; i++)
    {
        A[i] = rand () % 3;
        printf ("%d ", A[i]);
    }
 
   printf ("\n");
 
    int first_null; 
    for ( int i = 9; i > 0; i-- )
    {
        if ( A[i] == 0 )
            first_null = i;
    }
 
    printf ("Index first null element: " , first_null);
}
1
SmokeGG
0 / 0 / 1
Регистрация: 25.10.2013
Сообщений: 23
03.11.2013, 11:11  [ТС] 7
Ryuk, спс.Я так понимаю не хватает какой то директивы?

Все, нашел директиву нужную =)
#include <stdlib.h>
0
Миниатюры
Найти индекс первого нулевого элемента массива  
SmokeGG
0 / 0 / 1
Регистрация: 25.10.2013
Сообщений: 23
03.11.2013, 11:19  [ТС] 8
Ryuk,
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
#include <stdio.h>
#include <time.h>
#include <stdlib.h> >
 
#define n 10
 
int main()
{
    srand (time(NULL));
     int A[n];
 
    printf ("Original: \n");
 
    for ( int i = 0; i < n; i++)
    {
        A[i] = rand () % 3;
        printf ("%d ", A[i]);
    }
 
   printf ("\n");
 
    int first_null; 
    for ( int i = 9; i > 0; i-- )
    {
        if ( A[i] == 0 )
            first_null = i;
    }
 
   printf ("Index first null element: " , first_null);
0
Миниатюры
Найти индекс первого нулевого элемента массива  
Ryuk
179 / 177 / 56
Регистрация: 10.06.2011
Сообщений: 871
03.11.2013, 13:42 9
SmokeGG, если и так не пойдет, тогда не знаю что уже..
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
#include <stdio.h>
#include <time.h>
#include <stdlib.h> >
 
#define n 10
 
int main()
{
    srand (time(NULL));
    int i, fn;
    int A[n];
 
    printf ("Original: \n");
 
    for (i = 0; i < n; i++)
    {
        A[i] = rand () % 3;
        printf ("%d ", A[i]);
    }
 
   printf ("\n");
 
    for (i = 9; i > 0; i-- )
    {
        if ( A[i] == 0 )
            fn = i;
    }
 
   printf ("Index first null element: " , fn);
1
SmokeGG
0 / 0 / 1
Регистрация: 25.10.2013
Сообщений: 23
03.11.2013, 14:57  [ТС] 10
Ryuk, немного переделал.Все запустилось но не пойму что она выдает, и первый нулевой элемент пуст.
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
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <conio.h>
 
#define n 10
 
int main()
{
    srand (time(NULL));
    int i, fn;
    int A[n];
 
    printf ("Original: \n");
 
    for (i = 0; i < n; i++)
    {
        A[i] = rand () % 3;
    printf ("%d ", A[i]);
    }
 
   printf ("\n");
 
    for (i = 9; i > 0; i-- )
    {
    if ( A[i] == 0 )
        fn = i;
    }
 
   printf ("Index first null element: " , fn);
   getch();
}
0
Миниатюры
Найти индекс первого нулевого элемента массива  
SmokeGG
0 / 0 / 1
Регистрация: 25.10.2013
Сообщений: 23
04.11.2013, 00:48  [ТС] 11


Добавлено через 1 час 43 минуты
C#
1
   printf ("Index first null element: %d" , fn);
Не хватало %d =)
Всем спс за помощь
0
vua72
418 / 417 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
04.11.2013, 01:00 12
Цитата Сообщение от SmokeGG Посмотреть сообщение


Добавлено через 1 час 43 минуты
C#
1
   printf ("Index first null element: %d" , fn);
Не хватало %d =)
Всем спс за помощь
м где в коде у вас определена функция пользователя?
0
SmokeGG
0 / 0 / 1
Регистрация: 25.10.2013
Сообщений: 23
04.11.2013, 10:49  [ТС] 13
Цитата Сообщение от vua72 Посмотреть сообщение
м где в коде у вас определена функция пользователя?
Не знаю, мне помогли с кодом.
А как она должна выглядеть?)
0
vua72
418 / 417 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
04.11.2013, 14:55 14
Приблизительно так
C
1
2
3
4
5
6
7
8
9
int search (int A[], int n){
    int first_null; 
    for ( int i = 9; i>0; i-- )
    {
        if ( A[i] == 0 )
            first_null = i;
    }
return first;
}
Добавлено через 3 часа 40 минут
Ваша программа мгла бы выглядеть так:
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
#include <stdio.h>      /* printf */
#include <stdlib.h>       /* */
#include <time.h>
void print_array(int *a, int size){
    int i=0;
    puts("");
    for (i=0; i<size;++i)
        printf("%3d", a[i]);
    }
    
void fill_array(int *a, int size)
{
    int i=0; // счетчик
    int lb=-5, rb=15; // границы диапазлна
    for(i=0; i<size; ++i)
        a[i]=lb+rand()%(rb-lb+1);
}
void check (int *a, int size)
{
    int ind_0=-1; //если не будет 0
    int i=0; // счетчик
    for(i=0; i<size; ++i)
        if (a[i]==0) {
            ind_0=i;
            break;
        }
    if(ind_0==-1) printf ("\nВ массиве нет элементов == 0");
    else printf("\nПервый нулевой элемент находится в позиции: %d", ind_0);
}
#define N 10
#define M 15
#define K 25
int main ()
{
    int a[N], b[M], c[K];
    srand(time(NULL));
    fill_array(a, N);
    print_array(a,N);
    check(a, N);
    fill_array(b, M);
    print_array(b,M);
    check(b, M);
    fill_array(c, K);
    print_array(c,K);
    check(c, K);
    return 0;
}
1
SmokeGG
0 / 0 / 1
Регистрация: 25.10.2013
Сообщений: 23
04.11.2013, 20:12  [ТС] 15
vua72, спасибо
0
04.11.2013, 20:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2013, 20:12

Найти номер первого max элемента массива среди положительных, расположенных до первого отрицательного
Найти номер первого максимального элемента среди положительных элементов, расположенных до первого...

Найти индекс центрального элемента массива
Дан массив a, в нем найден центральный элемент х, как найти его индекс в массиве a?

Найти индекс максимального элемента массива
Не находит правильно индекс максимального элемента, в чём ошибка? #include&lt;stdio.h&gt;...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru