第3講 社員(関数)の学習その1
第9話 キーボードから値を取得する
を実現するプログラム例
#include<stdio.h>
int f(int a,int b);
int main(){
int x,y,z;
scanf("%d",&x);
scanf("%d",&y);
z=f(x,y);
printf("%d",x);
printf("+");
printf("%d",y);
printf("=");
printf("%d\n",z);
return(0);
}
int f(int p,int q){
return(p+q);
}
コピペ用添付ファイル
いちいちプログラムコードを書き換えないで、
実行ボタンを押すだけで、
(実行した後、キーボードから入力してエンターすると値はxに入り、
もう一度同じことをするとyに入ります。)
異なる計算ができるようになりました。
3+5しか計算できなかったプログラムが、
足し算一般が出来るアプリに変身したのです。
でも、このアプリ本当は、
となるようにしたいですね。
では何の入力か分かりません。
この後成績一覧表なども作成するとなると、
5教科の入力などたくさんデータを入れます。
ですから、
か
としたいところですよね。
そこで、
#include<stdio.h>
int f(int a,int b);
int main(){
int x,y,z;
printf("x=");
scanf("%d",&x);
printf("y=");
scanf("%d",&y);
z=f(x,y);
printf("%d",x);
printf("+");
printf("%d",y);
printf("=");
printf("%d\n",z);
return(0);
}
int f(int p,int q){
return(p+q);
}
とすればよさそうなものですが、
実行画面は、
と訳の分からないものになります。
どうもこれはEclipseの欠陥によるものらしいのです。
printf("x=");
scanf("%d",&x);
は本来この順に実行されるはずですが、
実行順番が逆になっているようです。
でも、実は解消方法があります。
#include<stdio.h>
int f(int a,int b);
int main(){
int x,y,z;
printf("x=");
fflush(0); //pirntfを先に実行させるためのお呪い
scanf("%d",&x);
printf("y=");
fflush(0); //pirntfを先に実行させるためのお呪い
scanf("%d",&y);
z=f(x,y);
printf("%d",x);
printf("+");
printf("%d",y);
printf("=");
printf("%d\n",z);
return(0);
}
int f(int p,int q){
return(p+q);
}
コピペ用添付ファイル
どうも気持ちが悪いのですが、
fflush(0); //pirntfを先に実行させるためのお呪い
を入れることによって問題が解消されると割り切りましょう。
Eclipseの欠陥によるものなので仕方がないのです。
関数については、
for文やif文の学習の後にもう一度戻ってきます。
つまり、その2が予定されていますので、関数の学習その1はここで終了します。
変数xに値を入れるのにscanf("%d",&x);と&マークが入っています。
これを省いてscanf("%d",x);とするとエラーします。
どうしてか気になるでしょうが、
今はscanfを使うときの決まりであると思って下さい。
学習が進むと&の意味が分かります。
第8話へ 第10話へ
初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ