初級者レベルです。しかし、もっと学習したいです。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
蒲生4丁目

初級者レベルです。しかし、もっと学習したいです。

#1

投稿記事 by 蒲生4丁目 » 16年前

 c言語を長く勉強していますが、未だこの程度のものしか掛けません。ここのサイトに書かれている皆さんは、C言語でのDXライブラリを駆使してゲームなんかを作っていますね?私もそれにあやかりたいです。
 今後、皆さんの指導を受けたいです。下記は、特に意味はありませんが、2次方程式の解にちなんだものです。
#include <stdio.h>
#include <math.h>
int main(void){
	int a,b,c,ct=1,ck=1;
	double x1,x2,D;
	while(ct==1){
		while(ck==1){
			printf("a=");scanf("%d",&a);printf("\n");
			if(a==0) ck=0;
			printf("b=");scanf("%d",&b);printf("\n");
			if(b==0) ck=0;
			printf("c=");scanf("%d",&c);printf("\n");
			if(c==0) ck=0;
			ck++;
		}
		while(ck>1){
			D=((double)b*(double)b-4*(double)a*(double)c);
			if(D<0){
				printf("Error\n");
				ck=3;
			}
			else if(D>0){
					D=sqrt(D);
					x1=(-1*(double)b+D)/2*(double)a;
				        x2=(-1*(double)b-D)/2*(double)a;
					printf("x1=%4.2lf ,x2=%4.2lf\n",x1,x2);
			}
			else if(D==0){
					x1=(-1*(double)b)/2*(double)a;
					printf("x1=%4.2lf\n",x1);
			}
			ck-=2;
		}
		while(ck==0){
			printf("continue-1/End-2?\n");
			printf("ct=");scanf("%d",&ct);printf("\n");
			ck++;
		}
		
	}
	return(0);
}

kazuoni

Re:初級者レベルです。しかし、もっと学習したいです。

#2

投稿記事 by kazuoni » 16年前

とりあえず規約を一度目を通してくださいね^^;
コードはプレタグで。。

指導を受けるっというのは自分の書いたコードがあることが前提ではないでしょうか?
とりあえずまず自分なりに作ってみてはいかがでしょうか?
ジャンルはなんでもいいと思いますが。
数当てゲーム、タイピングゲーム、パズル・・・
まずは簡単なものから組んでみることをお勧めします。

たかぎ

Re:初級者レベルです。しかし、もっと学習したいです。

#3

投稿記事 by たかぎ » 16年前

> 今後、皆さんの指導を受けたいです。

貼ったソースは特に意味がないとのことですが、ソースを貼るときは
タグで囲んでください。
利用規約をきちんと守った方が、質問をした際、適切な回答を素早く得られるからです。


蒲生4丁目

失礼しました。

#5

投稿記事 by 蒲生4丁目 » 16年前

 タグを付ける事の忘れていました。今後、宜しくおねがい致します。

non

Re:初級者レベルです。しかし、もっと学習したいです。

#6

投稿記事 by non » 16年前

ご自分で作られたプログラムのようですから、私の感想を。

1 a、b、cをint型にする必要はあったのでしょうか?
 最初からdouble型の方がキャストしなくて済みます。
 また、キャストをするにしても、キャストをしなくても良いところがたくさんあります。

2 printfのdouble型の書式指定は %fです。

3 ckの使い方として、最初に戻すのなら、ck-=2;より、ck=0の方がわかりやすいです。
 途中のck++なども同様です。カウントにする必要はないはずです。

4 ERRORのところのck=3 は、どうするつもりですか?

5 do{ }while(); 形式の方がわかりやすいような気もします。



 

non

Re:初級者レベルです。しかし、もっと学習したいです。

#7

投稿記事 by non » 16年前

>4 ERRORのところのck=3 は、どうするつもりですか?

printf("continue-1/End-2?\n");せずに、再入力ということですか。
字下げしてもらったのでわかりましたが、わかりにくいプログラムです。
whileはifでよさそうなのが・・・・

閉鎖

“C言語何でも質問掲示板” へ戻る