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

количество чисел, совпадающих с номером столбца, в которых они находятся - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
01.04.2010, 18:54     количество чисел, совпадающих с номером столбца, в которых они находятся #1
Задача такая:

Дана целочисленная прямоугольная матрица. Определить:
1) сумму элементов тех строк, которые содержат хотя бы один нулевой элемента;
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
#include <stdio.h> 
#include <time.h>
#include<stdlib.h>
int input (int n, int m){
     printf("Enter n: ");  
     scanf("%i",&n);     
     printf("Enter m: ");  
     scanf("%i",&m);
}
 
int Rand_mas (int** matr,int n, int m){
  int** matr = new int *[n];   
  for(int i=0; i<n; i++)
   matr[i] = new int [m];  
   srand (time (0));
  for(int i=0; i<n; i++){ 
   for(int j=0; j<m; j++){ 
   matr[i][j]=0 + (rand() % 5);
    printf("%3i ",matr[i][j]);
  } 
   printf("\n");
 }
 printf ("\n");
  
 int schet_str (int** matr,int sum){
     sum=0;
 for (int i=0; i<n; i++){
     k=0; sum_i=0;
     for (int j=0; j<m; j++){
         sum_i+= matr[i][j];
         if (matr[i][j]==0) k=1;
     }
     if (k==1) sum+=sum_i;
 }
printf ("sum =  %5i ", &sum);
printf ("\n");
 }
 
 int schet_stb (int** matr,int sum_ch,int b){
     for (int i=0; i<n; i++){
    b=0;sum_ch=0;
    for(int j=0; j<m; j++){
        if (matr[i][j]==j) b=1;
    }
}   if (b==1) sum_ch++;
printf ("sum_ch = %i", &sum_ch);
 }
 int del_matr (int** matr){
      for (int i=0; i<n; i++){
      delete [] matr[i];
  }
  delete [] matr;
 }
 
int main(){ 
  int n,m,sum,k,sum_i,sum_ch,b;
 
  int** matr = new int *[n];
  
  input (int n, int m)
  Rand_mas (int** matr,int n, int,m)
  schet_str (int** matr,int sum)
  schet_stb (int matr[i][j],int sum_ch,int b)
  del_matr (int matr[i][j])
 
  return 0;
}
Но выдает 6 ошибок. Найти не могу. Помогите)))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2010, 18:54     количество чисел, совпадающих с номером столбца, в которых они находятся
Посмотрите здесь:

Определить количество элементов матрицы у которых слева в его строке находятся элементы меньше его,а справа больше C++
Задана матрица целых чисел A(n,n). Все элементы столбца, с наибольшим номером, среди тех, где находится более двух простых элементов, заменить разно C++
Заменить отрицательные элементы суммой номера столбца и номера строки, в которых они находятся C++
C++ Дана последовательность 100 целых чисел. Подсчитать сумму тех чисел, значения которых совпадают с их порядковым номером.
C++ Массив 5х5. Вывод на печать номер строки и столбца и адреса , где они хранятся, для элементов, значения которых равны X...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
01.04.2010, 20:23  [ТС]     количество чисел, совпадающих с номером столбца, в которых они находятся #21
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
#include <stdio.h> 
#include <time.h>
#include<stdlib.h>
int input (int n, int m){
     printf("Enter n: ");  
     scanf("%i",&n);     
     printf("Enter m: ");  
     scanf("%i",&m);
}
 
int Rand_mas (int** matr,int n,int m){
  matr = new int *[n];   
  for(int i=0; i<n; i++){
   matr[i] = new int [m]; 
   srand (time (0));
      for(int i=0; i<n; i++){ 
          for(int j=0; j<m; j++){ 
              matr[i][j]=0 + (rand() % 5);
              printf("%3i ",matr[i][j]);
          } printf("\n");
      } printf ("\n");
    }
}
 
 int schet_str (int** matr,int sum, int k, int sum_i, int n, int m){
     sum=0;
 for (int i=0; i<n; i++){
     k=0; sum_i=0;
     for (int j=0; j<m; j++){
         sum_i+= matr[i][j];
          if (matr[i][j]==0) k=1;
     }
     if (k==1) sum+=sum_i;
 }
printf ("sum =  %5i ", &sum);
printf ("\n");
 }
 
 int schet_stb (int** matr,int sum_ch,int b,int m, int n){
     for (int i=0; i<n; i++){
    b=0;sum_ch=0;
    for(int j=0; j<m; j++){
        if (matr[i][j]==j) b=1;
    }
}   if (b==1) sum_ch++;
printf ("sum_ch = %i", &sum_ch);
 }
 int del_matr (int** matr, int n){
      for (int i=0; i<n; i++){
      delete [] matr[i];
  }
  delete [] matr;
 }
 
int main(){ 
  int n,m,sum,k,sum_i,sum_ch,b;
 
  int** matr = new int *[n];
  
  int input (int n, int m);
  int Rand_mas (int** matr,int n,int m);
  int schet_str (int** matr,int sum);
  int schet_stb (int** matr,int sum_ch,int b);
  int del_matr (int** matr);
 
 
  return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,265
01.04.2010, 20:51     количество чисел, совпадающих с номером столбца, в которых они находятся #22
НИчё не понимаю.
ДЛя ввода данных вызывается функция input

В какой строке у тебя вызов функции input?
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
01.04.2010, 20:54  [ТС]     количество чисел, совпадающих с номером столбца, в которых они находятся #23
Цитата Сообщение от kravam Посмотреть сообщение
НИчё не понимаю.
ДЛя ввода данных вызывается функция input

В какой строке у тебя вызов функции input?
В main
C++
1
int input (int n, int m);
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,265
01.04.2010, 21:03     количество чисел, совпадающих с номером столбца, в которых они находятся #24
Ничё подобного.
Это прототип функции

ВЫзываться будет так:
C++
1
input (n, m);
И вообще не нравится мне это всё. Я, пожалуй, умою руки. У тебя в определении функции schet_str

прописано 6 параметров. А ты вызываешь её с двумя. Причём вызываешь, как не
следовало бы вызывать. И я должен поверить, что всё это работает?
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
01.04.2010, 21:18  [ТС]     количество чисел, совпадающих с номером столбца, в которых они находятся #25
Ну я не знаю Вот и прошу о помощи
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,265
01.04.2010, 21:31     количество чисел, совпадающих с номером столбца, в которых они находятся #26
Это не язык С и не язык С++, не знаю я, в чём дело. Иследуй это дело и создай тему: почему прототип функции работает как вызов?

У меня вот он не работает как вызов, например.
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
01.04.2010, 21:35  [ТС]     количество чисел, совпадающих с номером столбца, в которых они находятся #27
Ну я вот щас функцию main написал так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main(){ 
  int n,m,sum,k,sum_i,sum_ch,b;
 
  int** matr = new int *[n];
  
  input (n,m);
  Rand_mas (matr,n,m);
  schet_str (matr,sum,k,sum_i,n, m)
  schet_stb (matr,sum_ch,b,m,n);
  del_matr (matr,n);
 
 
  return 0;
}
Да и в принципе не в этом дело даже. Мне интересно почему он не считает построкам и по столбца. выдает все время огромадное число
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,265
01.04.2010, 22:14     количество чисел, совпадающих с номером столбца, в которых они находятся #28
А мне интересно, почему ты работаешь с одним кодом, а мне даёшь другой.
Введи 8 и 9 и дай сюда результат.
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
02.04.2010, 14:05  [ТС]     количество чисел, совпадающих с номером столбца, в которых они находятся #29
Ввел значения 8 и 9
Миниатюры
количество чисел, совпадающих с номером столбца, в которых они находятся  
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
02.04.2010, 14:07  [ТС]     количество чисел, совпадающих с номером столбца, в которых они находятся #30
Парни может еще кто поможет???
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,265
02.04.2010, 19:30     количество чисел, совпадающих с номером столбца, в которых они находятся #31
Ты вызываешь прогу из консоли?
yanyk1n
 Аватар для yanyk1n
4324 / 1455 / 152
Регистрация: 12.03.2009
Сообщений: 5,310
02.04.2010, 21:49     количество чисел, совпадающих с номером столбца, в которых они находятся #32
1)
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
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
void Fill(int ** a, int N, int M);
void Print(const int * const* a, int N, int M);
int SumRow(const int * const* a, int N, int M, int K);
bool Zero(const int * const* a, int N, int M, int K);
 
int main()
{
    int N, M;
    cout << "Введите размерность матрицы -> ";
    cin >> N >> M;
    int ** A = new int * [N];
    for (int i = 0 ; i < N ; i++) A[i] = new int [M];
    Fill(A, N, M);
    cout << "Исходная матрица" << endl;
    Print(A, N, M);
    for (int i = 0 ; i < N ; i++) if (Zero(A, N, M, i+1))
    {
        cout << "Строка " << i+1 << " = " << SumRow(A, N, M, i+1) << endl;
    }
    for (int i = 0 ; i < N ; i++) delete [] A[i];
    delete [] A;
    return 0;
}
 
void Fill(int ** a, int N, int M)
{   
    srand((unsigned int)time(0));
    for (int i = 0 ; i < N ; i++)
    {
        for (int j = 0 ; j < M ; j++)
        a[i][j]=-50+rand()%101;
    }   
}
 
void Print(const int * const* a, int N, int M)
{
    for (int i = 0 ; i < N ; i++)
    {
        for (int j = 0; j < M ; j++)
        cout<<a[i][j]<<" ";
        cout<<endl;
    }
}
 
int SumRow(const int * const* a, int N, int M, int K)
{
    int s = 0;
    for (int i = 0 ; i < N ; i++)
    {
        s += a[K-1][i];
    }
    return s;
}
 
bool Zero(const int * const* a, int N, int M, int K)
{
    for (int i = 0 ; i < N ; i++) if (!a[K-1][i]) return true;
    return false;
}
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
03.04.2010, 07:11  [ТС]     количество чисел, совпадающих с номером столбца, в которых они находятся #33
Цитата Сообщение от kravam Посмотреть сообщение
Ты вызываешь прогу из консоли?
Ну да!

Добавлено через 2 минуты
Цитата Сообщение от k1ry4 Посмотреть сообщение
1)
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
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
void Fill(int ** a, int N, int M);
void Print(const int * const* a, int N, int M);
int SumRow(const int * const* a, int N, int M, int K);
bool Zero(const int * const* a, int N, int M, int K);
 
int main()
{
    int N, M;
    cout << "Введите размерность матрицы -> ";
    cin >> N >> M;
    int ** A = new int * [N];
    for (int i = 0 ; i < N ; i++) A[i] = new int [M];
    Fill(A, N, M);
    cout << "Исходная матрица" << endl;
    Print(A, N, M);
    for (int i = 0 ; i < N ; i++) if (Zero(A, N, M, i+1))
    {
        cout << "Строка " << i+1 << " = " << SumRow(A, N, M, i+1) << endl;
    }
    for (int i = 0 ; i < N ; i++) delete [] A[i];
    delete [] A;
    return 0;
}
 
void Fill(int ** a, int N, int M)
{   
    srand((unsigned int)time(0));
    for (int i = 0 ; i < N ; i++)
    {
        for (int j = 0 ; j < M ; j++)
        a[i][j]=-50+rand()%101;
    }   
}
 
void Print(const int * const* a, int N, int M)
{
    for (int i = 0 ; i < N ; i++)
    {
        for (int j = 0; j < M ; j++)
        cout<<a[i][j]<<" ";
        cout<<endl;
    }
}
 
int SumRow(const int * const* a, int N, int M, int K)
{
    int s = 0;
    for (int i = 0 ; i < N ; i++)
    {
        s += a[K-1][i];
    }
    return s;
}
 
bool Zero(const int * const* a, int N, int M, int K)
{
    for (int i = 0 ; i < N ; i++) if (!a[K-1][i]) return true;
    return false;
}
А можно на С++
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,265
03.04.2010, 07:34     количество чисел, совпадающих с номером столбца, в которых они находятся #34
А он тебе на чём написал?
Смотри, у него вызовы функций тоже как у меня, без int впереди.

У меня сильное подозрение, что ты используешь компилятор не языка C/C++ (читай: кодишь на каком-то другом языке) ибо у меня в голове не укладывается, я понимаю, синтаксис для разных компиляторов чуть-чуть разнится, но не настолько же. Либо компилятор настолько глюкавый.

Конечно, эти предположения архинеправдоподобны, но всегда надо исключать все невозможные варианты, тогда то, что останется и есть истина, какой бы неправдоподобной она не казалась.

Невозможные варианты для меня такие: ну не может нормальный рабочий компилятор C/C++ принимать это
C++
1
int input (int n, int m);
За вызов функции input. А утебя принимает. Серьёзно говорю тебе, разберись с этим. Я бы даже тему замутил, если бы сам не разобрался.
Ну или я ничё не понимаю в кодировании и мне пора на покой.
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
03.04.2010, 07:56  [ТС]     количество чисел, совпадающих с номером столбца, в которых они находятся #35
Цитата Сообщение от kravam Посмотреть сообщение
А он тебе на чём написал?
Смотри, у него вызовы функций тоже как у меня, без int впереди.

У меня сильное подозрение, что ты используешь компилятор не языка C/C++ (читай: кодишь на каком-то другом языке) ибо у меня в голове не укладывается, я понимаю, синтаксис для разных компиляторов чуть-чуть разнится, но не настолько же. Либо компилятор настолько глюкавый.

Конечно, эти предположения архинеправдоподобны, но всегда надо исключать все невозможные варианты, тогда то, что останется и есть истина, какой бы неправдоподобной она не казалась.

Невозможные варианты для меня такие: ну не может нормальный рабочий компилятор C/C++ принимать это
C++
1
int input (int n, int m);
За вызов функции input. А утебя принимает. Серьёзно говорю тебе, разберись с этим. Я бы даже тему замутил, если бы сам не разобрался.
Ну или я ничё не понимаю в кодировании и мне пора на покой.
Ты мог бы свой вариант показать со всеми исправлениями???
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,265
03.04.2010, 08:13     количество чисел, совпадающих с номером столбца, в которых они находятся #36
Просто-напросто взял твой код (сообщение 21) и исправил в нём функцию main на тобой же предложенную (сообщение 27). Вызвал прогу из консоли, ввёл 8, 9 и смотри что получилось:
...А у тебя СОВЕРШЕННО другой результат (сообщение 29)

Код одинаковый, а результаты абсолютно разные. Что я должен думать? Значит, у нас разные компиляторы (читай: кодим на разных языках).

Ну и код держи.
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
#include <stdio.h> 
#include <time.h>
#include<stdlib.h>
int input (int n, int m){
         printf("Enter n: ");  
     scanf("%i",&n);     
     printf("Enter m: ");  
     scanf("%i",&m);
}
 
int Rand_mas (int** matr,int n,int m){
  matr = new int *[n];   
  for(int i=0; i<n; i++){
   matr[i] = new int [m]; 
   srand (time (0));
      for(int i=0; i<n; i++){ 
          for(int j=0; j<m; j++){ 
              matr[i][j]=0 + (rand() % 5);
              printf("%3i ",matr[i][j]);
          } printf("\n");
      } printf ("\n");
    }
}
 
 int schet_str (int** matr,int sum, int k, int sum_i, int n, int m){
         sum=0;
 for (int i=0; i<n; i++){
         k=0; sum_i=0;
         for (int j=0; j<m; j++){
                 sum_i+= matr[i][j];
                  if (matr[i][j]==0) k=1;
         }
         if (k==1) sum+=sum_i;
 }
printf ("sum =  %5i ", &sum);
printf ("\n");
 }
 
 int schet_stb (int** matr,int sum_ch,int b,int m, int n){
         for (int i=0; i<n; i++){
        b=0;sum_ch=0;
        for(int j=0; j<m; j++){
                if (matr[i][j]==j) b=1;
        }
}   if (b==1) sum_ch++;
printf ("sum_ch = %i", &sum_ch);
 }
 int del_matr (int** matr, int n){
          for (int i=0; i<n; i++){
          delete [] matr[i];
  }
  delete [] matr;
 }
 
int main(){ 
  int n,m,sum,k,sum_i,sum_ch,b;
 
  int** matr = new int *[n];
  
  input (n,m);
  Rand_mas (matr,n,m);
  schet_str (matr,sum,k,sum_i,n, m);
  schet_stb (matr,sum_ch,b,m,n);
  del_matr (matr,n);
 
 
  return 0;
}
Миниатюры
количество чисел, совпадающих с номером столбца, в которых они находятся  
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
03.04.2010, 08:26  [ТС]     количество чисел, совпадающих с номером столбца, в которых они находятся #37
Не ну как бы матрицу то он у меня строит тоже все нормально. Так же случайными целыми числами. Проблема в том, что не считает:
1) сумму элементов тех строк, которые содержат хотя бы один нулевой элемента;
2) количество чисел, совпадающих с номером столбца, в которых они находятся.

Добавлено через 2 минуты
Реально выходит что у нас разные компиляторы. Потому что щас вставил твой код к себе и у меня выдал ваще какое то неочемное сообщение

Добавлено через 33 секунды
Странно очень.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,265
03.04.2010, 08:35     количество чисел, совпадающих с номером столбца, в которых они находятся #38
Сообщения-то как раз фигня. Это значит, допустим, что-то он не распознал. К примеру, в мой комплитор встроенные такие типы данных, а у тебя такие же есть (обязаны быть), но с другим именем. Это досадные недооразумения оставим на совести разработчиков компиляторов. А вот когда компиляторы хавают код, но дают разные результаты- это уже не фигня.

Дай свой код, хаваемый компилятором, только обязательно напиши вызовы функций, как я предлагаю (пусть он будет некорректно работать, это устранимо). Если твой компилятор не хавает мой вариант вызовов, то есть так:
C++
1
input (n,m);
Тогда языки разные
Voron8
13 / 13 / 1
Регистрация: 28.04.2009
Сообщений: 62
03.04.2010, 16:47     количество чисел, совпадающих с номером столбца, в которых они находятся #39
Будет чего непонятно спрашивай.

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
#include <iostream>
 
using namespace std;
 
 
int input (int& n, int& m);
int Rand_mas (int** matr,int n, int m); 
int schet_str (int** matr,int& sum, int k, int sum_i, int n, int m);
int schet_stb (int** matr,int& sum_ch,int b,int m, int n);
int del_matr (int** matr, int n);
 
 
int main(){ 
    int n,m,sum,k,sum_i,sum_ch,b;
    input (n, m);
    int** matr = new int* [n];
    
    Rand_mas (matr,n,m);
    schet_str (matr,sum,k,sum_i,n,m);
    schet_stb (matr, sum_ch, b,m,n);
    del_matr (matr,n);
 
  return 0;
}
 
 
 
int input (int& n, int& m){
    
    printf("Enter n: ");  
    scanf("%i",&n);     
    printf("Enter m: ");  
    scanf("%i",&m);
}
 
int Rand_mas (int** matr,int n, int m){
     
    for(int i=0; i<n; i++){
        matr[i] = new int [m]; 
    }
    srand (time (0));
    for(int i=0; i<n; i++){ 
        for(int j=0; j<m; j++){ 
            matr[i][j]=0 + (rand() % 5);
            printf("%3i ",matr[i][j]);
        } printf("\n");
    } printf ("\n");
}
 
 
int schet_str (int** matr,int& sum, int k, int sum_i, int n, int m){
    sum=0;
    for (int i=0; i<n; i++){
        k=0; sum_i=0;
        for (int j=0; j<m; j++){
            sum_i+= matr[i][j];
            if (matr[i][j]==0){k=1;}
        }
        if (k==1) sum+=sum_i;
    }
    printf ("sum =  %5i ", sum);
    printf ("\n");
}
 
int schet_stb (int** matr,int& sum_ch,int b,int m, int n){
    sum_ch=0;
    for (int i=0; i<n; i++){
        b=0;
        for(int j=0; j<m; j++){
            if (matr[i][j]==j){b=1;}
        }
    }
    if (b==1) sum_ch++;
    printf ("sum_ch = %i", sum_ch);
}
 
int del_matr (int** matr, int n){
    for (int i=0; i<n; i++){
        delete [] matr[i];
    }
    delete [] matr;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.04.2010, 18:37     количество чисел, совпадающих с номером столбца, в которых они находятся
Еще ссылки по теме:

Двумерные массивы. Определить номер строки и номер столбца, на пересечении которых находятся требуемые элементы массива: C++
Сумма элементов массива, у которых сумма индексов, на которых они находятся, - четное число. Проверить код C++
C++ Найти элементы массива, в которых значение совпадает с порядковым номером и подсчитать их количество

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

Или воспользуйтесь поиском по форуму:
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
04.04.2010, 18:37  [ТС]     количество чисел, совпадающих с номером столбца, в которых они находятся #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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <stdio.h> 
#include <time.h>
#include <stdlib.h>
int input (int n, int m){
     printf("Enter n: ");  
     scanf("%i",&n);     
     printf("Enter m: ");  
     scanf("%i",&m);
}
 
int Rand_mas (int** matr,int n,int m){
  matr = new int *[n];   
  for(int i=0; i<n; i++){
   matr[i] = new int [m]; 
   srand (time (0));
      for(int i=0; i<n; i++){ 
          for(int j=0; j<m; j++){ 
              matr[i][j]=0 + (rand() % 5);
              printf("%3i ",matr[i][j]);
          } printf("\n");
      } printf ("\n");
    }
}
 
 int schet_str (int** matr,int sum, int k, int sum_i, int n, int m){
     sum=0;
 for (int i=0; i<n; i++){
     k=0; sum_i=0;
     for (int j=0; j<m; j++){
         sum_i+= matr[i][j];
          if (matr[i][j]==0) k=1;
     }
     if (k==1) sum+=sum_i;
 } printf ("sum =  %5i ", &sum);
printf ("\n");
 }
 
 int schet_stb (int** matr,int sum_ch,int b,int m, int n){
     for (int i=0; i<n; i++){
     b=0;sum_ch=0;
     for(int j=0; j<m; j++){
         if (matr[i][j]==j) b=1;
     }
     }if (b==1) sum_ch++;
  printf ("sum_ch = %i", &sum_ch);
 }
 int del_matr (int** matr, int n){
      for (int i=0; i<n; i++){
      delete [] matr[i];
  }
  delete [] matr;
 }
 
int main(){ 
  int n,m,sum,k,sum_i,sum_ch,b;
 
  int** matr = new int *[n];
  
  input (n,m);
  Rand_mas (matr,n,m);
  schet_str (matr,sum,k,sum_i,n, m)
  schet_stb (matr,sum_ch,b,m,n);
  del_matr (matr,n);
 
 
  return 0;
}
И вот что выдает теперь и мой код:
Миниатюры
количество чисел, совпадающих с номером столбца, в которых они находятся  
Yandex
Объявления
04.04.2010, 18:37     количество чисел, совпадающих с номером столбца, в которых они находятся
Ответ Создать тему
Опции темы

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