こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

CからVB

以下のプログラムはC言語で作成されています。

これをVBで作成したいです。

教えてください。

#include <stdio.h>
#include <stdlib.h>

double *alloc(int r,int n,int m);

void input(double *p,int r,int n,int m);

void sumup(double *p,int r,int n,int m);

int main(void){

int r, n, m;

double *p;

// 行列サイズ入力
printf("input r n m ");

scanf("%d %d %d",&r,&n,&m);

// 行列領域取得
p = alloc(r,n,m);

// 行列要素入力
input(p,r,n,m);

// 行列の和
sumup(p,r,n,m);

//終了,行列領域解放
free(p);

return 0;
}

double *alloc(int r,int n,int m){
double *p;

printf("MATRIX[r=%d][n=%d][m=%d]\n\n",r,n,m);

p = (double*)malloc(sizeof(double)*r*n*m);

if( p == NULL){

printf("error! malloc failed.\n"); exit(-1);
}

return p;
}

void input(double *p,int r, int n,int m) {

int i,j,k;

for(i = 0; i < r; i++){

for(j = 0;j < n; j++){

for(k = 0; k < m; k++){

printf("input MATRIX[%d][%d][%d]= ",i,j,k);

scanf("%lf",&p[i*(n*m)+j*m+k]);
}
}
}

printf("\n");
}

// 行列の和
void sumup(double *p,int r,int n,int m){

int i, j, k;

// 0.0, not 0!!!
double sum = 0.0;

printf("sum of %d matrices:\n",r);

for(j = 0; j< n; j++){

for(k = 0;k < m; k++){
sum=0;

for(i = 0;i < r;i++){

sum += p[i*(n*m)+j*m+k];

}

printf("\n%2f",sum);
}
}
printf("\n");
}

投稿日時 - 2013-06-14 23:36:00

QNo.8134373

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

「CからVBへコンバートできるようになりたい」という事であれば
CとVBをそれぞれ学習して使いこなせるようになって、CとVBそれぞれでできることできないことなどの差異などがわかるようになれば、できるようになるかと思います。

# ぱっと見VBだと3次元配列のエミュレートをしなくていい分、簡単になりそうな。

投稿日時 - 2013-06-15 12:00:21

あなたにオススメの質問