第8講 4次魔方陣と6次魔方陣の作成
第2話 データの交換するにはどうする?

10 11 12
13 14 15 16

から

16 13
11 10
 7  6 12
14 15

を作るには、1と16等を交換しなければなりません。
そこで、交換プログラムを考えます。

#include<stdio.h>
void f(int *x); //データを交換する社員
void g(int *x); //データを表示する社員
int main(){
  int x[2];
  x[0]=1;
  x[1]=16;
  g(x);
  f(x);
  g(x);
}
void f(int *x){

}
void g(int *x){
  int i;
  for(i=0;i<2;i++)printf("%d ",x[i]);
  printf("\n");
}
コピペ用添付ファイル
を実行させると、実行画面は
1 16
1 16

となっています。
社員fの内容が空っぽですので、
  f(x);
があっても意味がありません。
社員fの内容を埋めて、実行画面が
1 16
16 1

となるようにしたいと思いますが、
void f(int *x){
  x[0]=x[1];
  x[1]=x[0];
}
は正解でしょうか。
ところが、このようにすると実行画面は、
1 16
16 16

となってしまいます。

これは当然です。
  x[0]=x[1];
によって、

x[0]の貴重なデータが消えてしまい

となってしまっています。
次の行
  x[1]=x[0];
はまったく意味のない操作ですね。
では、皆さん正しいプログラムを組んで下さい。
ヒントは、fにおいてもう1つの箱を用意するです。




第1話へ 第3話へ

a


初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座

初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ