Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 21.11.2016
Сообщений: 17
1

Сформировать массив из количеств перемен знака в каждой строке матрицы

09.12.2016, 12:08. Показов 925. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Для матрицы А[4][4], состоящей из не нулевых элементов, сформировать массив В[4] из количеств перемен знака в каждой строке. Определить максимальный элемент этого массива и соответствующий номер строки
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2016, 12:08
Ответы с готовыми решениями:

Для матрицы А[4][4], состоящей из не нулевых элементов, сформировать массив В[4] из количеств перемен знака в
Для матрицы А, состоящей из не нулевых элементов, сформировать массив В из количеств перемен знака...

Сформировать вектор из количеств положительных элементов матрицы в каждой строке
пожалуйста,помогите

Сформировать вектор из количеств элементов i-ой строки матрицы, отсутсвующих в (i+1)-ой строке
Здравствуйте , у меня возникла проблема, выдали задание а я не знаю как делать , помогите...

Сформировать вектор В=(В1,В2,...Вn), каждый элемент которого равен числу перемен знаков в соответсвующей строке матрицы
Сформировать вектор В=(В1,В2,...Вn), каждый элемент которого равен числу перемен знаков в...

6
48 / 48 / 46
Регистрация: 18.11.2016
Сообщений: 109
09.12.2016, 14:14 2
TheNaik,
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
59
60
61
62
63
64
65
66
67
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <locale.h>
 
int main()
{
setlocale(LC_ALL,"rus");
srand(time(0));
int a[4][4],b[4],i,j,flag,cnt=0;
 
for(i=0;i<4;i++)                    //заполнение массива
    for(j=0;j<4;j++)
        {
            a[i][j]=-50+rand()%100;
            if(a[i][j]==0)
                a[i][j]+=1;
        }
 
for(i=0;i<4;i++)                    //ищем повторы по рядам...
{
    if(a[i][0]>=0)
        flag=1;
    else
        flag=0;
 
    for(j=1;j<4;j++)
    {
        if(a[i][j]>0&&flag==0)
        {
            cnt++;
            flag=1;
        }
        if(a[i][j]<0&&flag==1)
        {
            cnt++;
            flag=0;
        }
    }
    b[i]=cnt;                          //...и запоняем 2й массив
    cnt=0;
}
 
for(i=0,flag=0;i<4;i++)                //Ищем максимальное повторение и строку
    if(b[i]>cnt)
    {
        cnt=b[i];
        flag=i;
    }
 
printf("Начальный массив:\n");          //Выводим все на экран
for(i=0;i<4;i++)
{
    for(j=0;j<4;j++)
        printf("%3.1d ",a[i][j]);
        printf("\n");
}
 
printf("\n\nКоличество смены знаков:\n");
for(i=0;i<4;i++)
    printf("%d\n",b[i]);
 
printf("\nМаксимальное число смены знаков - %d, в строке %d",cnt,flag+1);
 
return 0;
}
1
737 / 542 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
09.12.2016, 15:18 3
pakanpak, зачем столько раз цикл гонять,всё за один проход делается
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 4
int main()
{
    int A[N][N], B[N], i, j, count, max = 0, buff = 0;
    srand(time(NULL));
    for(i = 0; i < N; i++, putchar('\n')){
        for(j = 0, count = 0; j < N; j++){
            A[i][j] = rand() % 18 - 9;
            while(!A[i][j])
                A[i][j] = rand() % 18 - 9;
            printf("%3d", A[i][j]);
            if(j){
                if(A[i][j] >= 0 && A[i][j - 1] < 0)
                    count++;
                if(A[i][j] < 0 && A[i][j - 1] >= 0)
                    count++;
            }
            if(A[i][j] > max){
                max = A[i][j];
                buff = i;
            }
        }
        B[i] = count;
    }
    putchar('\n');
    for(i = 0; i < N; i++)
        printf("%d ", B[i]);
    putchar('\n');
    printf("Maximum element is %d in line %d\n", max, buff);
    return 0;
}
1
48 / 48 / 46
Регистрация: 18.11.2016
Сообщений: 109
09.12.2016, 16:24 4
LFC, да, так бесспорно лучше
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
09.12.2016, 16:42 5
Условие перемены знака можно записать так
C
1
if (A[i]*A[i+1] < 0) ...
1
737 / 542 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
09.12.2016, 17:37 6
Цитата Сообщение от Байт Посмотреть сообщение
Условие перемены знака можно записать так
а что если значения элементов окажутся большими и произойдет переполнение?
2
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
09.12.2016, 17:49 7
Цитата Сообщение от LFC Посмотреть сообщение
а что если значения элементов окажутся большими
Да, вы правы. В этом смысле простое сравнение безопаснее....
1
09.12.2016, 17:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2016, 17:49
Помогаю со студенческими работами здесь

Определить минимальный элемент в каждой строке матрицы и сформировать из них массив
Здравствуйте, форумчане. Задание: определить минимальный элемент в каждой строке и сформировать...

Найти строку матрицы, в которой меньше всего перемен знака
Задание: Динамически выделить память под N*M элементов вещественного типа float. Разработать...

Найти строку матрицы, в которой меньше всего перемен знака
3. Заполнить двумерный числовой массив С целыми числами. Найти строку массива, в которой меньше...

Из случайных чисел ввести одномерный массив, состоящий из 15 элементов. Найти количество перемен знака
При помощи случайных чисел ввести одномерный массив, состоящий из 15 элементов. Массив должен...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru