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

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

03.07.2019, 00:12. Показов 881. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
как это
int rec_func(int* mas, size_t size, bool flag)
{
C++
1
2
3
4
5
6
7
8
    if(size == 0)
        return 0;
    if(*mas == 0 && !flag)
        return rec_func(mas + 1, size - 1, true);
    if(flag)
        return *mas + rec_func(mas + 1, size - 1, flag);
    return rec_func(mas + 1, size - 1, flag);
}
заставить работать с этой прогой
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
88
89
90
91
92
93
#include<stdio.h>
#include <conio.h>
#include<locale.h>
#include <math.h>
#include <iostream>
#include <cstdio>
 
#define n 3
void input_matr (int a[n][n])
{
 int i,j;
 printf ("Vvedite elementi matrici: \n");
 for (i = 0; i < n; i++)
  for (j = 0; j < n; j++)
   scanf ("%d", &a[i][j]);
}
void input_matr_fail (int a[n][n])
{
 int i,j;
 FILE *fp;
  fp=fopen("lab3text.txt", "r");
  for (i = 0; i < n; i++)
  for (j = 0; j <n; j++)
  fscanf (fp,"%d" , & a[i] [j]);
  fclose(fp);
 }
 
int *mas_x (int (*a)[n], int *x)
{
 int i,j;
 
 for (j=0; j < n; j++)
 {
  int pro=1;
  for (i=0; i < j; i++)
   pro*= a[i][j];
   x[j] = pro;
 }
 
 
 
 return x;
}
void output (int a[n][n], int x[n])
{
 int i,j;
 FILE *fp;
 printf ("Matrica a: \n");
for ( i = 0; i < n; i++)
 {
  for (j = 0; j < n; j++)
   printf ("%5d", a[i][j]);
   printf ("\n");
 }
 printf ("Massiv x: \n");
 for ( i= 0; i < n; i++)
  printf ("%5d", x[i]);
  printf ("\n");
 fp = fopen ("out4-2.txt", "w");
 fprintf (fp,"Matrica a: \n");
 for ( i = 0; i < n; i++)
 {
  for (j = 0; j < n; j++)
   fprintf (fp, "%5d", a[i][j]);
   fprintf (fp,"\n");
 }
 fprintf (fp,"Massiv x: \n");
 for ( i= 0; i < n; i++)
  fprintf (fp, "%5d", x[i]);
  fprintf (fp,"\n");
 fclose (fp);
}
 
int main(void)
{
    system("cls");
 int a[n][n], x[n],c;
do
  {
    printf("vvod matr:\n1 - s klaviatyri\n2 - iz faila\n");
    scanf("%d",&c);
  }
  while (c!=1 && c!=2);
  switch (c)
  {
    case 1: input_matr(a);
        break;
    case 2: input_matr_fail(a);
  }
 
 output(a,mas_x(a,x));
 getch();
}
Добавлено через 19 минут
ну если не считать первый код, то нужно у второго кода
определить величину Y, как сумму положительных элементов
массива X.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.07.2019, 00:12
Ответы с готовыми решениями:

Вычислить величину Z как сумму положительных элементов массива, расположенных в четных строках
Доброго времени суток, думаю из названия темы все понятно.) Вот сами задачки: 1) Вычислить...

Определить сумму элементов массива, превышающих заданную величину М, и количество элементов, меньших М
Определить сумму элементов массива, превышающих заданную величину М, и количество элементов,...

Записать положительные элементы массива X подряд в массив Y. Определить k – количество положительных элементов. Вычислит сумму элементов массива Y
Записать положительные элементы массива X=(x1,x2,…, xn) подряд в массив Y=(y1,y2,…, yk)....

Определить сумму положительных элементов и сумму нечётных элементов массива
1) Создать приложение, которое предоставляет пользователю ввести размер одномерного массива, сам...

5
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 14
03.07.2019, 02:49  [ТС] 2
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
88
89
90
91
92
#include<stdio.h>
#include <conio.h>
#include<locale.h>
#include <math.h>
#include <iostream>
#include <cstdio>
#include <fstream>
 
using namespace std;
#define n 5
void input_matr (int a[n][n])
{
 int i,j;
 printf ("Vvedite elementi matrici: \n");
 for (i = 0; i < n; i++)
  for (j = 0; j < n; j++)
   scanf ("%d", &a[i][j]);
}
void input_matr_fail (int a[n][n])
{
 int i,j;
 FILE *fp;
  fp=fopen("lab3text.txt", "r");
  for (i = 0; i < n; i++)
  for (j = 0; j <n; j++)
  fscanf (fp,"%d" , & a[i] [j]);
  fclose(fp);
 }
 
int *mas_x (int (*a)[n], int *x)
{
 int i,j;
 
 for (j=0; j < n; j++)
 {
  int pro=1;
  for (i=0; i < j; i++)
   pro*= a[i][j];
   x[j] = pro;
 }
 
 return x;
}
void output (int a[n][n], int x[n])
{
 int i,j;
 FILE *fp;
 printf ("Matrica a: \n");
for ( i = 0; i < n; i++)
 {
  for (j = 0; j < n; j++)
   printf ("%5d", a[i][j]);
   printf ("\n");
 }
 printf ("Massiv x: \n");
 for ( i= 0; i < n; i++)
  printf ("%5d", x[i]);
  printf ("\n");
 fp = fopen ("lab3text.txt", "w");
 fprintf (fp,"Matrica a: \n");
 for ( i = 0; i < n; i++)
 {
  for (j = 0; j < n; j++)
   fprintf (fp, "%5d", a[i][j]);
   fprintf (fp,"\n");
 }
 fprintf (fp,"Massiv x: \n");
 for ( i= 0; i < n; i++)
  fprintf (fp, "%5d", x[i]);
  fprintf (fp,"\n");
 fclose (fp);
}
int main()
{
    system("cls");
 int a[n][n], x[n],c;
do
  {
    printf("vvod matr:\n1 - s klaviatyri\n2 - iz faila\n");
    scanf("%d",&c);
  }
  while (c!=1 && c!=2);
  switch (c)
  {
    case 1: input_matr(a);
        break;
    case 2: input_matr_fail(a);
 
  }
 output(a,mas_x(a,x));
 getch();
}
Как получить сумму положительных массива чтобы получить Y
0
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 14
03.07.2019, 05:16  [ТС] 3
C++
1
2
3
4
5
6
7
8
9
void input_matr_fail (int a[n][n])
{
 int i,j;
 FILE *fp;
  fp=fopen("lab3text.txt", "r");
  for (i = 0; i < n; i++)
  for (j = 0; j < n; j++)
  fscanf (fp,"%d" , & a[i] [j]);
  fclose(fp);}
По-моему где то тут ошибка, запускаю через файл и вылазит в матрице все числа -858993460
0
Модератор
Эксперт С++
13703 / 10906 / 6473
Регистрация: 18.12.2011
Сообщений: 29,115
03.07.2019, 06:57 4
C
1
2
3
4
5
6
7
8
9
fp=fopen("lab3text.txt", "r");
if(fp!=NULL)
{
  for (i = 0; i < n; i++)
     for (j = 0; j < n; j++)
        fscanf (fp,"%d", &a[i][j]);
  fclose(fp);
}else
  puts("file not open");
;
0
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 14
03.07.2019, 10:44  [ТС] 5
Данные из файла не читаются:
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <STDIO.H>
#include <CONIO.H>
#include <iostream>
#define n 5
using namespace std;
void input_matr (int a[n][n])
{
 int i,j;
 printf ("Vvedite elementi matrici: \n");
for (j = 0; j < n; j++)
   for (i = 0; i < n; i++)
   scanf ("%d", &a[i][j]);
}
void input_matr_fail (int a[n][n])
{
 int i,j;
 FILE *fp;
  fp=fopen("lab.txt", "r");
if(fp!=NULL)
{
  for (i = 0; i < n; i++)
     for (j = 0; j < n; j++)
        fscanf (fp,"%d", &a[i][j]);
  fclose(fp);
}else
  puts("file not open");
 
}
 
 
  int *mas_x (int (*a)[n], int *x) 
{
  int i, j;
  FILE *fp;
  for (j=0; j < n; j++) 
  { 
    int pro=1;
    for (i=j; i < n; i++)
      pro*= a[i][j];
    x[j] = pro;
  }
  return x; 
}
 
void output (int a[n][n], int x[n])
{
 int i,j,sum=0,count=0;
 FILE *fp;
 printf ("Matrica a: \n");
for ( i = 0; i < n; i++)
 {
  for (j = 0; j < n; j++)
   printf ("%5d", a[i][j]);
   printf ("\n");
 }
 printf ("Massiv x: \n");
 {for ( i= 0; i < n; i++)
  printf ("%5d", x[i]);
 printf ("\n");}
 fp = fopen ("lab.txt", "w");
 fprintf (fp,"Matrica a: \n");
 for ( i = 0; i < n; i++)
 {
  for (j = 0; j < n; j++)
   fprintf (fp, "%5d", a[i][j]);
   fprintf (fp,"\n");
 }
 fprintf (fp,"Massiv x: \n");
 {for ( i= 0; i < n; i++)
  fprintf (fp, "%5d", x[i]);
  fprintf (fp,"\n");
  fclose (fp);}
  for(int i=0;i<5;i++)
    if(a[i]>0){sum += x[i]; count++;}
    cout << "Sum = " << sum << "  Kol-vo = " << count;
}
 
void clrscr()
{
int i;
for(i = 0; i < 100; i++)
printf("\n");
}
 
void main ()
{
 clrscr();
 int a[n][n], x[n],c;
do
  {
    printf("vvod matr:\n1 - s klaviatyri\n2 - iz faila\n");
    scanf("%d",&c);
  }
  while (c!=1 && c!=2);
  switch (c)
  {
    case 1: input_matr(a);
        break;
    case 2: input_matr_fail(a);
  }
 output(a,mas_x(a,x));
 getch();
}
0
Модератор
Эксперт С++
13703 / 10906 / 6473
Регистрация: 18.12.2011
Сообщений: 29,115
03.07.2019, 10:53 6
Как я понимаю, сообщение "file not open" не выводится.
Ну, тогда
Как пользоваться отладчиком (в Visual Studio)
Ставьте останов на 23 строку и смотрите, что читается из файла.
0
03.07.2019, 10:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.07.2019, 10:53
Помогаю со студенческими работами здесь

Определить сумму положительных элементов массива
Дан одномерный массив целых чисел( значения ввести с клавиатуры). Определить сумму положительных...

N=7 Определить сумму положительных элементов массива.
1.N=7 Определить сумму положительных элементов массива.

Определить величину Y, как наибольший из индексов элементов массива
Определить величину Y, как наибольший из индексов элементов массива X(5х5), равных 1.выполнить это...

Из положительных элементов данного массива составить новый массив и определить сумму его элементов
помогите решать задачу в GW Basic !!!!! из положительных элементов данного массива составить новый...


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

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