'da Nx3 değerlerini saklayan bir 2D işaretçi oluşturmak istiyorum. Kodu aşağıya yazdım ve eğer bir if-else durumu kullanarak bazı değerleri saklamak için kullanmak istiyorum. Değerleri saklamak için iki adet 2 boyutlu işaretçi oluşturdum, * p ve * q. Şimdi kod tamam görünüyor, ancak p ve q işaretçilerinde saklanan değerleri basamıyorum. Lütfen bana yardım edebilir misiniz? Ne "C++
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
int main()
{
int i, j, N;
double xtmp, ytmp, ztmp, delx, dely, delz, fpair, cutsq;
double rsq, r2inv, r6inv, forcelj;
double firstval[2][3], secondval[2][3];
double (*p)[2][3] = 0;
double (*q)[2][3] = 0;
int f[2][3];
p =& firstval;
q =& secondval;
double x[2][3] =
{
{0.1,0.8,0.12},
{0.5,0.9,0.13}
};
N = 2;
cutsq = 1.0;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx * delx + dely * dely + delz * delz;
if (rsq < cutsq)
{
r2inv = 1.0/rsq;
r6inv = r2inv * r2inv * r2inv;
forcelj = r6inv * 1;
fpair = forcelj * r2inv;
f[i][0] += delx * fpair;
f[i][1] += dely * fpair;
f[i][2] += delz * fpair;
f[j][0] -= delx * fpair;
f[j][1] -= dely * fpair;
f[j][2] -= delz * fpair;
if (i != j)
{
(*p)[i][0] += delx * fpair;
(*p)[i][1] += dely * fpair;
(*p)[i][2] += delz * fpair;
(*p)[j][0] -= delx * fpair;
(*p)[j][1] -= dely * fpair;
(*p)[j][2] -= delz * fpair;
}
else
{
(*q)[i][0] += delx * fpair;
(*q)[i][1] += dely * fpair;
(*q)[i][2] += delz * fpair;
(*q)[j][0] -= delx * fpair;
(*q)[j][1] -= dely * fpair;
(*q)[j][2] -= delz * fpair;
}
std::cout << firstval << "\n";
}
}
}
}
Lütfen sorunuzu göndermeden önce kodunuzu düzgün bir şekilde biçimlendirin. – Chiel
Ayrıca, şu anda hangi çıkışı alıyorsunuz? –
Çoğaltılamadı: https://ideone.com/ElFZxo –