0 / 0 / 0
Регистрация: 02.06.2019
Сообщений: 29
1

Определить номера строк массива, содержащих только положительные элементы и найти среди них наименьший

17.06.2019, 14:49. Показов 768. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
дано задание:
Дан двумерный массив размером n*m, заполненный случайными числами из заданного пользователем промежутка. Определить номера строк массива, содержащих только положительные элементы и найти среди них наименьший, если такие строки есть, то вывести все на экран и в текстовый файл.
не получается задать условия для нахождения положительных элементов
вот набросок программы
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#include <malloc.h>
#include<stdbool.h>
int main()
{
    srand(time(NULL));
    system("chcp 1251>0");
 
    system("cls");
    int nach, kon, m, n,i,j,min=-100;
    FILE *file2;
    file2 = fopen("file2.txt","wt");
    printf("Введите размер массива: ");
    scanf("%d %d", &m, &n);
    printf("Введите промежуток: ");
    scanf("%d %d", &nach, &kon);
    int ar[m][n];
    //,ar2[m];
    for (int i = 0; i < m; i++)
    {
        for(int j = 0; j < n; j++)
        {
            ar[i][j]=rand()%(kon-nach+1)+nach;
                printf("%3.d ", ar[i][j]);
        }
        printf("\n");
    }
 for (int i = 0; i < m; i++)
    {
        fprintf(file2,"%d ",ar[i][j]);
        if (min < ar[i])
            min = ar[i];
    }
    fprintf(file2,"%d ",min);
 
 ////////////////////////////
//условие
//////////////////////////////
 
           // for (int i = 0; i < n; i++)
    fprintf(file2,"%d ",ar[i][j]);
    fclose(file2);
    printf("\n содержимое файла: ");
    file2= fopen("file2.txt","rt");
    if (getc(file2) == EOF)
        printf("Файл пуст!");
    else
    {
        rewind(file2);
        while (!feof(file2))
        {
            fscanf(file2,"%d ",&nach);
            printf("%d ",nach);
        }
    }
    free(ar);
   // free(ar2);
    fclose(file2);
    printf("\n");
    system("pause");
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2019, 14:49
Ответы с готовыми решениями:

Массив размером m*n. Заполнить его с клавиатуры. Определить номера строк, содержащих только положительные элементы
Дан двумерный массив размером m*n. Заполнить его с клавиатуры. Определить номера строк, содержащих...

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

Определить количество строк, содержащих только положительные элементы
Дана целочисленная прямоугольная матрица. Определить: 1) количество строк, содержащих только...

В матрице определить количество строк, содержащих только положительные элементы
Помогите с решением задачи! Дана целочисленная прямоугольная матрица. Определить: 1) количество...

1
5241 / 3569 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
21.06.2019, 15:22 2
born plagued, ты минимум неверно ищешь, нужно if (ar[i]<min) ...
Причесал немного, правда вторая часть, где вывод содержимого файла, у меня не работает

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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <malloc.h>
#include <windows.h>
#include <stdbool.h>
int main()
{
    srand(time(NULL));
    system("chcp 1251>0");
    system("cls");
    int nach, kon, m, n,i,j,k,min,flag;
    FILE *file2;
    file2 = fopen("file2.txt","wt");
    printf("Введите размер массива (m n): ");
    scanf("%d %d", &m, &n);
    printf("Введите диапазон чисел от и до: ");
    scanf("%d %d", &nach, &kon);
    int ar[m][n], istr[m];
    //,ar2[m];
    k = 0; // счетчик положительных строк
    for (int i = 0; i < m; i++) // пробегаем по строкам
    {
      flag = 1; // флаг положительных значений
      for(int j = 0; j < n; j++) // пробегаем по столбцам
        {
          ar[i][j]=rand()%(kon-nach+1)+nach;
          printf("%3.d ", ar[i][j]);
          if (ar[i][j]<=0) flag = 0; // если элемент отрицательный - сбрасываем флаг
        }
 
        if (flag) // если отрицательных значений не было, flag == 1
        {
          istr[k] = i; // сохраняем номер строки
          k++; // увеличиваем счетчик
        }
        printf("\n");
    }
    
    if (!k) // если k=0, т.е. положительных строк нет
    {
        printf("Положительные строки не найдны, милорд!");
        return 0; // идем пить чай с козинаками ^__^
    }
    else // а если все жыЕсть - придется поработать -__-
    {
      printf("Положительные строки: \n");
      min = ar[istr[0]][0]; // присваиваем минимуму первый элемент массива
      for (i = 0; i < k; i++) // пробегаем по всем положительным строкам
      {
      for (j = 0; j < n; j++) // пробегаем по всем столбцам
        {
          fprintf(file2,"%d ",ar[istr[i]][j]); // записываем в файл
          printf("%d ",ar[istr[i]][j]); // выводим на экран
          if (ar[istr[i]][j]<min) 
             min = ar[istr[i]][j]; // если текущий элемент меньше минимума, то он становится минимумом
        }
      fprintf(file2,"\n"); // куда же без переноса строки
      printf("\n"); // куда же без переноса строки
      }
    fprintf(file2,"Минимальный элемент: %d \n",min);
    printf("Минимальный элемент: %d \n",min);
    fclose(file2);
    }  
 
  //////////// дальше у меня не работает :(
 
    printf("\n содержимое файла: ");
    file2= fopen("file2.txt","rt");
    if (getc(file2) == EOF)
        printf("Файл пуст!");
    else
    {
        rewind(file2);
        while (!feof(file2))
        {
            fscanf(file2,"%d ",&nach);
            printf("%d ",nach);
        }
    }
    free(ar);
   // free(ar2);
    fclose(file2);
    printf("\n");
    system("pause");
 return 0;
}
0
21.06.2019, 15:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.06.2019, 15:22
Помогаю со студенческими работами здесь

Определить номера строк прямоугольной матрицы, содержащие только положительные элементы.
7.1.2. Помогите, пожалуйста, решить задачу в С++. Определить номера строк прямоугольной...

Определить номера столбцов содержащих только отрицательные элементы матрицы
Помогите пожалуйста сделать задание : определить номера столбцов содержащих только отрицательные...

Определить количество строк матрицы, содержащих только нулевые элементы
-Дана целочисленная прямоугольная матрица. Определить количество строк, содержащие только нулевые...

Определить количество строк матрицы, содержащих только отрицательные элементы
Дана матрица размером МxN. Определить количество строк, содержащих только отрицательные элементы.


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

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

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