Moi drodzy!
Ucze sei korzystac ze wskaznikow i dlatego tez napisalam drobny programik, ktory zamienia wektor na macierz.
Kod:
#include <iostream>
using namespace std;
void wczytuj(double *&T,int m);
void zamieniaj(double *&T, double **&A,int m,int n);
void wypisz(double **&A,int m,int n);
int main()
{
int k, l;
k=3; l=4;
double **A=new double *[k];
for (int i=0; i<k; i++) A[i]=new double[l];
double *wekt=new double [k*l];
wczytuj(wekt,k*l);
zamieniaj(wekt,A,k,l);
wypisz(A,k,l);
}
void wczytuj(double *&T,int m)
{
for (int i=0; i<m; i++)
{ cout<<"T["<<i<<"]=";
cin>>T[i];
}
}
void zamieniaj(double *&T,double **&B,int m,int n)
{
for (int i=0; i<m; i++)
{for (int j=0; j<n; j++)
{ B[i][j]=T[i*m+j];
}
}
}
void wypisz(double **&B,int m,int n)
{
for (int i=0; i<m; i++)
for (int j=0; j<n; j++)
{
cout<<"A["<<i<<"]["<<j<<"]="<<B[i][j]<<"\n";
}
}
Czy dobrze korzystam ze wskaznikow? Nie chce nabrac zlych nawykow.
Mam rowniez pytanie odnosnie kodu. Podczas wypisywania macierzy otrzymuje podwojne wyniki, tzn:
Kod:
T[0]=1
T[1]=2
T[2]=3
T[3]=4
T[4]=5
T[5]=6
T[6]=7
T[7]=8
T[8]=9
T[9]=10
T[10]=11
T[11]=12
A[0][0]=1
A[0][1]=2
A[0][2]=3
A[0][3]=4
A[1][0]=4 -->powtarza sie
A[1][1]=5
A[1][2]=6
A[1][3]=7
A[2][0]=7 -->powtarza sie
A[2][1]=8
A[2][2]=9
A[2][3]=10
Czy moglibyscie mi wskazac gdzie lezy moj blad?
Bede niezmiernie za wasze cenne wskazowki.