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

двумерный массив и функция! - C++

Восстановить пароль Регистрация
 
bam32
1 / 1 / 0
Регистрация: 10.11.2011
Сообщений: 48
25.11.2011, 20:16     двумерный массив и функция! #1
Парни помогите, чего-то я не догоняю!
у меня есть функция kol она считает сколько столбцов с нулевым элементом встречается и плюсует в переменную g!

если делать не через функцию все работает.
у меня в g выводит 0!(если через функцию делать)
сорри за код я его не форматировал!

где допустил касяк?

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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int kol (int A[100][100],int n,int m,int g){ // подсчет нулевых элементов
 
for ( int j = 0; j < n; j++ ){
  for ( int i = 0; i < m; i++ ){
 
      if ( A[i][j] == 0 ){
         g++;
      }
   }
}
return 0;
}
 
 
 
int main(){
const int k=100;        
int n,m;
int g=0;
int A[k][k];
int i,j;
setlocale(LC_ALL, "rus");
cout<<"Введите размеры матрицы "<<endl;
cin >>n>>m;
 
for(i=0;i<n;i++)
        for(j=0;j<m;j++){
                cout<<"a["<<i<<","<<j<<"] = ";
                        cin>>A[i][j];   
                
                                        }
 
cout << "Вот Ваша матрица:" << endl << endl;
 for (int i=0;i<n;i++){
        for(int j=0; j<m;j++)
                cout<<"  "<< A[i][j]<< " ";
                        cout<<endl;     
                                        }
 
 
 
 
  
 kol(A,n,m,g); //вызов функции!
 cout<<"количество столбцов, содержащих хотя бы один нулевой элемент: "<<g<<endl;
        
 system("pause");
return 0;
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Сыроежка
Заблокирован
25.11.2011, 20:21     двумерный массив и функция! #2
bam32,

Я вас разочарую, но ваша функция не подсчитывает число столбцов, которые содержат по крайней мере один нулевой элемент. Она подсчитывает общее число нулевый элементов в матрице. Кроме того, о том, что функция это сделала, кроме нее самой никто не узнает! Вы из функции всегда возвращаете 0.

C++
1
2
3
4
5
int kol (int A[100][100],int n,int m,int g){ // подсчет нулевых элементов
.... 
....
return 0;
}
bam32
1 / 1 / 0
Регистрация: 10.11.2011
Сообщений: 48
25.11.2011, 20:26  [ТС]     двумерный массив и функция! #3
Цитата Сообщение от Сыроежка Посмотреть сообщение
Кроме того, о том, что функция это сделала, кроме нее самой никто не узнает! Вы из функции всегда возвращаете 0.
а как это исправить?

я же её вызываю внизу!

Цитата Сообщение от bam32 Посмотреть сообщение
kol(A,n,m,g); //вызов функции!
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 20:32     двумерный массив и функция! #4
C
1
2
3
4
5
6
7
8
9
10
11
int Count(int A[100][100], int n, int m)
{
   int count = 0, i, j;
   for (i = 0; i < n; i++ )
   {
       for(j = 0 j < m && a[i][j] != 0; j++)
           ;
       count += (j < m);
   }
   return count;
}
bam32
1 / 1 / 0
Регистрация: 10.11.2011
Сообщений: 48
25.11.2011, 21:14  [ТС]     двумерный массив и функция! #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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main(){
const int k=100;    
int n,m;
int g=0;
int A[k][k];
int i,j;
setlocale(LC_ALL, "rus");
cout<<"Введите размеры матрицы "<<endl;
cin >>n>>m;
 
for(i=0;i<n;i++)
    for(j=0;j<m;j++){
        cout<<"a["<<i<<","<<j<<"] = ";
            cin>>A[i][j];   
        
                    }
 
cout << "Вот Ваша матрица:" << endl << endl;
 for (int i=0;i<n;i++){
    for(int j=0; j<m;j++)
        cout<<"  "<< A[i][j]<< " ";
            cout<<endl;     
                    }
 
 
 for ( int j = 0; j < n; j++ ){
  for ( int i = 0; i < m; i++ ){
 
      if ( A[i][j] == 0 ){
         g++;
      }
   }
}
 
cout<<"количество столбцов, содержащих хотя бы один нулевой элемент: "<<g<<endl;
 
int v = 0;
for ( int i = 0; i < n; i ++ )
{
int c = 0;
int max = 0;
int maxe = 0;
     for ( int j = 0; j < m-1; j ++ )
        {
                if ( A[i][j] == A[i][j+1] )
                        c ++;
                if ( c > maxe )
                        maxe = c;
        }
        if ( maxe > max )
        {
                max = maxe;
                v = i;
        }
}
cout<<"номер первой строки с максимум одинаковых переменных "<<v<<endl; 
system("pause");
 
return 0;
}
Yandex
Объявления
25.11.2011, 21:14     двумерный массив и функция!
Ответ Создать тему
Опции темы

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