第9講 ポインタの学習
第7話 ポインタおよび1次元配列による6次魔方陣作成プログラム
ポインタによるコード例
#include<iostream>
using namespace std;
using namespace
System;
void f();
int main(){
f();
}
void f(){
int *m,i,j;
m=(int *)malloc(144);
for(i=0;i<6;i++){
for(j=0;j<6;j++){
*(m+6*i+j)=6*i+j+1;
if(*(m+6*i+j)<10)cout<<"0"<<*(m+6*i+j)<<" ";
if(*(m+6*i+j)>=10)cout<<*(m+6*i+j)<<" ";
}
cout<<endl;
}
cout<<endl;
cout<<"6次魔方陣作成"<<endl;
int w;
for(i=0;i<3;i++){
w=*(m+6*i+i);
*(m+6*i+i)=*(m+6*(5-i)+(5-i));
*(m+6*(5-i)+(5-i))=w;
}
for(i=0;i<3;i++){
w=*(m+6*i+(5-i));
*(m+6*i+(5-i))=*(m+6*(5-i)+i);
*(m+6*(5-i)+i)=w;
}
for(i=0;i<3;i++){
w=*(m+6*((i+2)%3)+i);
*(m+6*((i+2)%3)+i)=*(m+6*(5-((i+2)%3))+i);
*(m+6*(5-((i+2)%3))+i)=w;
}
for(i=0;i<3;i++){
w=*(m+6*i+(i+2)%3);
*(m+6*i+(i+2)%3)=*(m+6*i+5-(i+2)%3);
*(m+6*i+5-(i+2)%3)=w;
}
for(i=0;i<6;i++){
for(j=0;j<6;j++){
if(*(m+6*i+j)<10)cout<<"0"<<*(m+6*i+j)<<" ";
if(*(m+6*i+j)>=10)cout<<*(m+6*i+j)<<" ";
}
cout<<endl;
}
cout<<endl;
}
コンソール画面
1次元配列による6次魔方陣作成プログラム
#include<iostream>
using namespace std;
using namespace System;
void f();
int main(){
f();
}
void f(){
int m[56],i,j;
for(i=0;i<6;i++){
for(j=0;j<6;j++){
m[6*i+j]=6*i+j+1;
if(m[6*i+j]<10)cout<<"0"<<m[6*i+j]<<" ";
if(m[6*i+j]>=10)cout<<m[6*i+j]<<" ";
}
cout<<endl;
}
cout<<endl;
cout<<"6次魔方陣作成"<<endl;
int w;
for(i=0;i<3;i++){
w=m[6*i+i];
m[6*i+i]=m[6*(5-i)+(5-i)];
m[6*(5-i)+(5-i)]=w;
}
for(i=0;i<3;i++){
w=m[6*i+(5-i)];
m[6*i+(5-i)]=m[6*(5-i)+i];
m[6*(5-i)+i]=w;
}
for(i=0;i<3;i++){
w=m[6*((i+2)%3)+i];
m[6*((i+2)%3)+i]=m[6*(5-((i+2)%3))+i];
m[6*(5-((i+2)%3))+i]=w;
}
for(i=0;i<3;i++){
w=m[6*i+(i+2)%3];
m[6*i+(i+2)%3]=m[6*i+5-(i+2)%3];
m[6*i+5-(i+2)%3]=w;
}
for(i=0;i<6;i++){
for(j=0;j<6;j++){
if(m[6*i+j]<10)cout<<"0"<<m[6*i+j]<<" ";
if(m[6*i+j]>=10)cout<<m[6*i+j]<<" ";
}
cout<<endl;
}
cout<<endl;
}
コンソール画面
VB講義へ
VB講義基礎へ
vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)