因数分解プログラム(C言語)について(1)
”因数分解を行うプログラムについて”の質問と同じ者です。
みなさんのご回答を参考にして、作ってみたのですが、
ポインタとかの使い方などがわからず、実行すると、
不正な処理を行ったので終了しますとなってしまいます。
どなたか、具体的にどこが悪いのか、
そしてどのように直せば正しく実行されるのか、
教えて下さい。お願いします。
以下↓がプログラムです。
800文字以上のため二つに分割しました。
#include <stdio.h>
#include <math.h>
#include <process.h>
/*関数プロトタイプ宣言*/
int input(int *,int *,int *);
int judge(int *,int *,int *);
int bunkai1(int *,int *,int *,int *,int *,float *);
int bunkai2(int *,int *,int *,int *,int *,float *);
int yakubun1(int *,int *,int *,int *,int *,int *,int *);
int yakubun2(int *,int *,int *,int *,int *,int *,int *);
int output(int *,int *,int *,int *);
/*関数の呼び出し*/
int main(void)
{
int a,b,c,q,n1,m1,min1,flag,i,d,e,m2,n2,min2,f,g;
float D;
input(&a,&b,&c);
judge(&a,&b,&c);
bunkai1(&a,&b,&q,&n1,&m1,&D);
bunkai2(&a,&b,&q,&n2,&m2,&D);
yakubun1(&m1,&n1,&min1,&flag,&i,&d,&e);
yakubun2(&m2,&n2,&min2,&flag,&i,&f,&g);
output(&d,&e,&f,&g);
return (0);
}
/*数値入力関数*/
int input(int *a,int *b,int *c)
{
printf("a*x^2+b*x+c=0で,a,b,cを入力して下さい。\n");
printf("a=");
scanf("%d",a);
printf("b=");
scanf("%d",b);
printf("c=");
scanf("%d",c);
if(*a == 0){
printf("a = 0なので因数分解できません。\n");
exit(1);
}
return 0;
}
つづく