Проблем с типове данни в C++

purko

Registered
Здравейте, опитвам се да направя една програмка, ама имам следния проблем:
Изкарва ми грешка error C2296: '/' : illegal, left operand has type 'double *'

при този ред: s = s/n;

Защо не иска да извърши тази операция като променливата е от тип double?

Ето го и цeлия код:
Код:
#include <iostream.h>
#include <process.h>
void main ()
{
	/////////////////////
	double n, m;
	int * * a;
	double * * s;
	double * * g;
	int i,j;
	////////////////////

	///////////////////
	do{
		cout<<"Vuvedete N v intervala ot 10 do 30: \n";
		cin>>n;
	}while(n<10 || n> 30);
	
	do{
		cout<<"Vuvedete M v intervala ot 4 do 10: \n";
		cin>>m;
	}while(m<4 || m> 10);
	////////////////////

	///////////////
	n = n+1;
	m = m+1;
	///////////////

	///////////////////
	a = new int *[n];
	s = new double *[n];
	g = new double *[n];
	//
	for(i=1; i<n; i++){
		a[i]=new int [m];
	}
	///////////////////

	//////////////////
	for(i=1; i<n; i++){
		for(j=1; j<m; j++){
			cout<<"Vuvedete ocenka za student "<<i<<" i ocenka po predmet "<<j<<"\n";
			cin>>a[i][j];
		}
	}
	//////////////////

	////////////////////
	for(i=1; i<=n; i++){
		s[i] = 0;
		for(j=1; j<=m; j++){
			s[i] += a[i][j];
		}
	}
	////////////////////

	//////////////////
	for(j=1; j<=m; j++){
		g[j] = 0;
		for(i=1; i<=n; i++){
			g[j] += a[i][j];
		}
	}
	///////////////////

	///////////////////
	cout<<"Sredni ocenki na studenti: \n";

	for(i=1; i<=n; i++){
		s[i] = s[i]/n;
	}
	///////////////////

	///////////////////
	system("Pause");
}
 
Нужни ли са ти тези показатели? Че и показатели-към-показатели, които служат за съвсем друго, не за инициализиране на динамичен масив. Може да се инициализира, но по друг начин.
 
eLite каза:
Нужни ли са ти тези показатели? Че и показатели-към-показатели, които служат за съвсем друго, не за инициализиране на динамичен масив. Може да се инициализира, но по друг начин.

Ами всъщност исках да имам само динамичен масив и така успях да го направя :D
Какъв е другия начин? :)
 
eLite каза:
Имаш ли условието на задачата?
Имам, но не искам да ми я правиш. Искам сам да се помъча. Просто обясни с прости думи как мога да инициализирам динамичен масив и с другото мисля, че ще се справя :)
 
Подведох се от c#.
Ти си го инициализирал правилно, но проблема ти е в другите масиви s[] и g[].
Искаш да са двумерни, а ти трябват едномерни.
PHP:
#include <iostream>
using namespace std;
void main ()
{
   /////////////////////
   int n, m, i, j;
   double **a;
   [b]double *s;
   double *g;[/b]
   ////////////////////

   ///////////////////
   do
   {
      cout<<"Vuvedete N v intervala ot 10 do 30: \n";
      cin>>n;
   }
   while(n<2 || n> 30);
   
   do
   {
      cout<<"Vuvedete M v intervala ot 4 do 10: \n";
      cin>>m;
   }
   while(m<2 || m> 10);
   ///////////////////

   ///////////////////
   a = new double*[n];
   [b]s = new double[n];
   g = new double[n];[/b]
   ///////////////////
   for(i=0; i<n; i++)
   {
      a[i]=new double[m];
   }
   ///////////////////

   //////////////////
   for(i=0; i<n; i++)
   {
      for(j=0; j<m; j++)
	  {
         cout<<"Vuvedete ocenka za student "<<i+1<<" i ocenka po predmet "<<j+1<<"\n";
         cin>>a[i][j];
      }
   }
   //////////////////

   ////////////////////
   for(i=0; i<n; i++)
   {
      s[i] = 0;
      for(j=0; j<m; j++)
	  {
         s[i] += a[i][j];
      }
   }
   ////////////////////

   //////////////////
   for(j=0; j<m; j++)
   {
      g[j] = 0;
      for(i=0; i<n; i++)
	  {
         g[j] += a[i][j];
      }
   }
   ///////////////////

   ///////////////////
   cout<<"Sredni ocenki na studenti: \n";

   for(i=0; i<n; i++)
   {
      cout<<s[i]/n<<endl;
	  
   }
   ///////////////////

   ///////////////////
  [b] for(i=0;i<n;i++)
	   delete[] a[i];
   delete[] a;
   delete[] s;
   delete[] g;[/b]
}
 

Back
Горе