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

Ввод и вывод массива.функции и указатели - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.65
irinairina
1 / 1 / 0
Регистрация: 06.09.2010
Сообщений: 6
21.11.2010, 16:07     Ввод и вывод массива.функции и указатели #1
Требуется осуществить ввод нескольких двумерных массивов(3 шт) с помощью функций и указателей.
Совершенно ничего не могу понять и все, на что хватило сил и мыслей-накатать такой совершенно бессмысленный код. Ткните носом где совсем не так
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
#include <iostream>
using namespace std;
 
int **vvod(int **mass, int razm);
int **vyvod(int **mass, int razm);
 
int main()
{
    int razm;
    cout<<"vvedite razmernost"<<endl;
    cin>>razm;
    int **matr; 
    matr = new int*[razm]; 
    for (int i=0; i<razm; i++)
        matr[i] = new int[razm];
 
int **a;int **b;int **c;
a=vvod( a, razm);
b=vvod( b, razm);
c=vvod( c, razm);
a=vyvod( a, razm);
b=vyvod( b,razm);
c=vyvod( c, razm);
 
//ГіГ¤Г*ëåГ*ГЁГҐ 
    for (int i=0; i<razm; i++)
    delete[] matr[i];
    delete[] matr;
    system("pause");
    return 0;
}
 
int vvod(int **mass, int razm)
{
    for (int i=0; i<razm; i++)
        for (int j=0; j<razm; j++)
        {
        cout<<"element ["<<i<<"] ["<<j<<"] : ";
        Г±in>>mass [i][j];
        }
        return mass;
}
 
int vyvod(int **mass, int razm)
{
    for (int i=0; i<razm; i++)
    {
        for (int j=0; j<razm; j++)
        {
            cout.width(3);
            cout << mass[i][j];
        }
        cout << endl;
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.11.2010, 16:25     Ввод и вывод массива.функции и указатели #2
C++
1
a=vvod( a, razm);
a - это указатель, а vvod возвращает int

надо определения функций исправить, как в прототипах написано
vivod тоже - должна возвращать указатель
irinairina
1 / 1 / 0
Регистрация: 06.09.2010
Сообщений: 6
21.11.2010, 19:09  [ТС]     Ввод и вывод массива.функции и указатели #3
accept, а в протитипах тоже ж ведь какие-то указатели..или это бред все? или оттуда убрать..я вообще не соображу что от меня хотят

я хз, голова кипит уже просто
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
22.11.2010, 02:53     Ввод и вывод массива.функции и указатели #4
прототипы нормальные
определения функций не соответствуют прототипам

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int **vvod(int **mass, int razm)
{
    for (int i = 0; i < razm; i++)
        for (int j = 0; j < razm; j++) {
            cout << "element [" << i << "] [" << j << "] : ";
            сin >> mass [i][j];
        }
    return mass;
}
 
int **vyvod(int **mass, int razm)
{
    for (int i = 0; i < razm; i++) {
        for (int j = 0; j < razm; j++) {
            cout.width(3);
            cout << mass[i][j];
        }
        cout << endl;
    }
    return mass;
}
Verock
0 / 0 / 0
Регистрация: 02.11.2009
Сообщений: 3
09.01.2011, 22:35     Ввод и вывод массива.функции и указатели #5
Ребят!
а можете помочь с моей задачкой.
У меня в ней тоже присутствуют функции с указателями.

вот условие:
Дан массив С. получить и напечатать значение переменной Fl по следующему правилу:
Fl=1, если сумма положительных элементов массива больше суммы отрицательных элементов по модулю, в противном случае Fl=0.

Код
[CPP]#include <iostream>
#include <conio.h>
#include <math.h>

using namespace std;

int *Input (int* n)
{int* C;
 int i;

 cout << " Razmer massiva: \n";
cin>>*n;
C = new int [*n];
if (C==NULL) {cout << "ne xvataet pamjati!";
exit(1);}

cout << "Vvod elementov massiva: \n";
for (i=0; i<*n; i++)
cin >> *(C+i);

return C;
}

void SumPol(int *C,int n)
{   
	int k;
	int Sum1;
	k=1;
	Sum1=0;
	
		for (int i=0; i<n; i++){ 
		
				if (*(C+i)>0)
					Sum1=Sum1+*(C+i);
				k=k+1;}
		
}

void SumOtr (int *C, int n)
{
 int l;
 int Sum2;
 l=1;
 Sum2=0;
 

 for (int i=0; i<n; i++)
 { if (*(C+i)<=0)
 Sum2=abs(Sum2+*(C+i));}
   
 l=l+1;

 
}

void vyvodFl (int* C, int n)
{
 int Fl;

  int Sum1;
  int Sum2;
  SumPol(&Sum1,n);
cout<< "Summa polojitel'nyx elementov: \n"<<Sum1<<endl;
SumOtr (&Sum2,n);
cout << cout <<"Summa otricatel'nyx elementov: \n"<<Sum2<<endl;

for (int i=0; i<n;i++)
     
 {if (Sum1>Sum2) 
     Fl=1;
 else 
	 Fl=0;}
 cout << "Fl= "<<Fl;

}





  void Output (int *C,int n)
  {  int i;
     for (i=0; i<n; i++)
		 cout <<"element "<<i<<": "<<*(C+i)<<endl;
	 
  }

 



void main (void)
{ int *masC,nmasC;
masC=Input(&nmasC);
Output (masC,nmasC);
SumPol (masC,nmasC);
SumOtr (masC,nmasC);
vyvodFl (masC,nmasC);

getch();}
[/CPP]
Yandex
Объявления
09.01.2011, 22:35     Ввод и вывод массива.функции и указатели
Ответ Создать тему
Опции темы

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