C言語で多項式の割り算のプログラムを作っているんですができません
以下プログラム
#include <stdio.h>
int main(void)
{
int m,m2,i,i2,j,k;
int a[1000],b[1000],c[1000],d[1000];
puts("何次の多項式ですか?");
printf("1つめ:"); scanf("%d",&m);
printf("2つめ:"); scanf("%d",&m2);
puts("1つめの多項式の係数を入力してください。");
for(i=m;i>=0;i--){
scanf("%d",&a[i]);
}
puts("2つめの多項式の係数を入力してください。");
for(i=m2;i>=0;i--){
scanf("%d",&b[i]);
}
k=m-m2;
c[k]=a[m]/b[m2];
printf("商の次数は%dです。\n",k);
j=m2-1;
for(k=m-m2;k>=0;k--){
for(i=m-1;i>=0;i--){
d[i]=a[i]-c[k]*b[j];
a[i]=d[i];
c[k-1]=a[i]/b[m2];
j=j-1;
}
printf("%d ",c[k]);
}
return(0);
}
原因は
for(k=m-m2;k>=0;k--){
for(i=m-1;i>=0;i--){
d[i]=a[i]-c[k]*b[j];
a[i]=d[i];
c[k-1]=a[i]/b[m2];
j=j-1;
}
printf("%d ",c[k]);
}
で、iのfor文が終わった後kのfor文が更新され、またiのfor文が始まったときにa[i]が最初に入力された値に変わってしまうからだと思うんですが直せません
誰か教えてくださいm(_ _)m
No.1ベストアンサー
- 回答日時:
すまん、質問者さんのソースコードから弄ってたら
どんどん,わけが判らなくなってごみっぽいプログラムになっていったorz
============投げ捨てて最初から書きなおしたもの========
#include <stdio.h>
int main(void)
{
int m,m2,i,i2,j,k;
int a[1000],b[1000],c[1000],d[1000];
puts("何次の多項式ですか?");
printf("1つめ:"); scanf("%d",&m);
printf("2つめ:"); scanf("%d",&m2);
puts("1つめの多項式の係数を入力してください。");
for(i=m;i>=0;i--){
scanf("%d",&a[i]);
}
puts("2つめの多項式の係数を入力してください。");
for(i=m2;i>=0;i--){
scanf("%d",&b[i]);
}
if (b[m2] != 0){
for (i=0;i <= m-m2;i++){
c[m - m2 - i] = a[m - i] / b[m2];
for (j = 0;j <= m2 ; j++){
a[m - i - j] = a[m - i- j] - c[m - m2 - i] * b[m2 - j];
}
printf("%d次の項%d,%d,%d\n",m - m2 - i,a[m - i],b[m2],c[m - m2 - i]);
}
}
return(0);
}
==================できるだけ質問者様のコードに近づけたごみ================
#include <stdio.h>
int main(void)
{
int m,m2,i,i2,j,k;
int a[1000],b[1000],c[1000],d[1000];
puts("何次の多項式ですか?");
printf("1つめ:"); scanf("%d",&m);
printf("2つめ:"); scanf("%d",&m2);
puts("1つめの多項式の係数を入力してください。");
for(i=m;i>=0;i--){
scanf("%d",&a[i]);
}
puts("2つめの多項式の係数を入力してください。");
for(i=m2;i>=0;i--){
scanf("%d",&b[i]);
}
k=m-m2;
c[k]=a[m]/b[m2];
printf("%d ",c[k]);
printf("商の次数は%dです。\n",k);
for(k=m-m2;k>=0;k--){
c[k]=a[m - (m - m2 - k)]/b[m2];
printf("%d ",c[k]);
j = m2;
for(i = m - (m - m2 - k);i>= m - (m - m2 - k) - m2 ;i--){
d[i]=a[i]-c[k]*b[j];
a[i]=d[i];
j=j-1;
}
}
return(0);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# LU分解法のピボット選択機能実装について(C言語・gcc-9) 1 2022/07/22 15:20
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# LU分解法のピボッティングについて(C言語/gcc-9) 3 2022/07/11 23:10
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# C言語 3 2022/10/04 15:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
strcmp
-
10個出力で改行したいのですが...
-
CTRL+Dでループを抜けるには
-
入力したお金の金額からお札の...
-
%P と %X の違い
-
3つの入力した数値の大小比較...
-
C言語に関する質問です
-
srand(time(NULL))の使い方
-
4の倍数を論理演算で表す。。
-
【C言語教えてください】sin波...
-
WM_CLOSEで閉じれないウィンド...
-
三平方の定理を求めるプログラム
-
C言語のじゃんけんゲームのプロ...
-
答えを教えてください
-
C言語です このプログラミング...
-
C言語での、年複利の計算方法...
-
プログラム(C言語)
-
既約分数の表示プログラム
-
Win32でのBITMAP
-
コンパイルエラーについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
printf で二進表示を行いたい。
-
【C言語教えてください】sin波...
-
strcmp
-
コンパイルエラーについて
-
c言語でAからZまでを表示する...
-
コマンドラインに出力した文字...
-
cshの文字列操作(0埋め)
-
4の倍数を論理演算で表す。。
-
C言語 プログラミング
-
%P と %X の違い
-
8人分のテストの点数を入力し、...
-
C言語での、年複利の計算方法...
-
printf( " %2d", p * q );
-
hit&bolwのプログラミングがで...
-
scanfに文字が入力されたときに...
-
error C2143: 構文エラー : ';'...
-
printfの出力内の文字をdefine...
-
テキストカーソル位置の取得
-
unsigned int型について
おすすめ情報