- 締切済み
配列128桁の加算、減算について。
現在C言語で四則演算について勉強しています。 128桁の配列をもつ整数についてa,b,各桁を加算、減算するプログラムを書きたいのですが分からなくて困ってます。できればCのソースを教えて欲しいですおねがいします。 s = 65536 a[128],b[128],c[128] i = -1 とする。 i <128 である限り、演算を実行。 i >127なら終わり。(++1) c(i) = a(i) - b(i)という演算を行う。 c(i) < 0 の場合 s を借りてくる。 c(i)に s を加算し、上の桁から1を引く。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Ogre7077
- ベストアンサー率65% (170/258)
- neKo_deux
- ベストアンサー率44% (5541/12319)
- 中村 拓男(@tknakamuri)
- ベストアンサー率35% (674/1896)
- Tacosan
- ベストアンサー率23% (3656/15482)
関連するQ&A
- 16進数 加算 減算 C言語
今学校でC言語を学んでいるのですが、「16進数同士の加算・減算」を行う問題が出されました。 16進同士の計算となると'A'~'F'や桁上がりの対処など壁にぶち当たっています。 私は10進に直してから加算・減算し、また16進に直す方法しか思いつかず。16進のままで計算は出来ると思うのですが、分かりません。 教えて下さい。お願いします。
- ベストアンサー
- C・C++・C#
- エクセル 加算減算
エクセルについて質問があります 表を作成しています A2に項目 B2に繰越金(残金)C2に入金した金額 D2に使った金額 E2に残金 ちなみに B3に 自動的にE2の金額が入力されるよう設定したいと 思っています 同じ行に 加算と減算を 計算式を使ってもとめられるように計算式をつくりたい のですが なかなかうまくできません これが 入金だけなら =sum(B2:C2)を E2に入力して 出来たのですが これに 引き算も つけたしたい場合は どのようにしたらよいのでしょうか? それとも 加算 減算(また 掛け算なども)を1行には まとめられないのでしょうか? ちょっと基本的な質問で申し訳ありませんが 何方か その方法を教えて頂けないでしょうか? また それを30行にわたって したいのですが いちいち 計算式 (関数というのでしょうか) を 入力しないと ダメなのでしょうか それとも コピーなどで 出来るかもしりたいのですが 教えて頂けたらありがたいです 宜しくおねがいいたします
- ベストアンサー
- Windows Vista
- 2進数の加算の繰り上がり
2進数の四則演算のプログラムを作りたいと思い、2進数を表示するところまではできたのですが、加算になると繰り上がりという壁にぶつかってしまいました。繰り上がりや桁上げなどがよく分からないので、お教えください。(下のソースコードが繰り上がりのない加算をするまでのものです) #include <stdio.h> int main(void) { int a,b,i,j,x[8],y[8],z[8]; do{ puts("二つの符号なし整数を入力してください。(ただしa>bとし、bはのべき乗の値とする)"); printf("a="); scanf("%d",&a); printf("b="); scanf("%d",&b); if(a < = b) puts("入力した値がa>bになっていません。\a"); }while(a < = b); for( i = 0; i < = 7; i + +){ x[i] = a % 2; a = a / 2; y[i] = b % 2; b = b / 2; } puts("aとbをそれぞれ二進数で表すと"); printf("a="); for( i = 7; i > = 0; i - -){ printf("%d",x[i]); } puts(""); printf("b="); for( i = 7; i > = 0; i - -){ printf("%d",y[i]); } printf("となります。\n\n"); printf("<加算>\n"); printf("c=a+b="); for( j = 7; j > = 0; j - -){ z[j]=x[j]^y[j]; printf("%d",z[j]); } return(0); }
- ベストアンサー
- C・C++・C#
- ポイント加算・減算プログラム?
こんにちは。今簡単なポイントを加算・減算するようなプログラムを作ろうとしてるのですが、全然わかりません/(-_-)ヽ 内容は、 画面上の、あるボタン((1)ボタンとします)をクリックするとポイントが加算され、違うページの違うボタン((2)ボタンとします)をクリックするとポイントが減算されるというものです。プラス、これはユーザごとに分けて個別に表示させたいのです。(ユーザAがHPにアクセスするとA個人のポイントが表示される。ユーザBがHPにアクセスするとB個人のポイントが表示される。)感じです。 お願いします。
- 締切済み
- HTML
- 加算、減算、乗算、除算について
// 加算、減算、乗算、除算について // 記号と数値にそれぞれ別の配列に分けました。 // そこから、どうすれば計算ができるのか // 悩んでいます。よろしくお願いします。 #include<iostream> using namespace std; char **tokei(char *str1,char *str2,int *count,char *kigouX); int main() { int count; int *num; char **www; char kigo[12]; char str1[30],str2[]="+-*/"; strcpy(str1,"123+45-6*789/"); www=tokei(str1,str2,&count,kigo); num=new int[count]; for(int n=0;n<count;n++) { num[n]=atoi(www[n]); } // 数値に変換num[]、記号を順番に抽出kigo[] -->OK // 記号に沿って、数値を演算すればよい。 // ここがやり方(理屈)がわからない。 getchar();{}return 0; } char **tokei(char *str1,char *str2,int *count,char *kigouX) { int cnt=0; int m=0; for(int a=0;*(str1+a)!='\0';a++){} for(int b=0;*(str2+b)!='\0';b++){} for(int i=0;i<a;i++) { for(int j=0;j<b;j++) { if(*(str1+i)==*(str2+j)) { *(kigouX+m)=*(str1+i);m++; *(str1+i)='\0'; cnt++; } } } *(kigouX+m)='\0'; char **c; c=new char*[cnt]; *count=cnt; for(int m=0;m<cnt;m++) { c[m]=str1; while(*str1!='\0'){str1++;}str1++; } return c; }
- ベストアンサー
- C・C++・C#
- 数学的な処理
プログラムで次の処理をしたいのですが、どうすればよいでしょうか。計算部分をどのように書けば良いかわかりません。 1桁の整数a,b,c,dがあります。 条件は、 a<b<c<d かつ 1≦a,b,c,d≦9です。 このとき、 a,b,c,d の数字間に四則演算符号+-*/を入れ、結果が10になるようにします。整数は順序を入れ替えてもかまわず、()を利用して計算の順序を制御してもかまいません。同じ整数は2度使えません。 結果は数式で表示します。 例: 1+2+3+4=10 (1,2,3,4) 2*3+5-1=10 (1,2,3,5) (3-7/4)*8=10 (3,4,7,8) など。 よろしくおねがいします。
- 締切済み
- Java
- 3桁の整数の表し方と証明
各位の数字が全て異なり各位とも0でない3桁の整数がある。この整数の各位の数字を入れ替えて出来る全ての整数ともとの整数を加えると222の倍数になることを証明せよ。という問題ですが、、 もとの3桁整数を表すのに100a+10b+cと考えました。 各位を入れ換えた整数を例えば100b+10c+aとすると加えると101a+110b+11cとなります。これが222の倍数となると証明できないし、、。最初の3桁の整数の表し方が違うんですかね、、。すいません、教えて下さい。
- ベストアンサー
- 数学・算数
- 配列のコピーについて
C言語での配列のコピーについて調べているのですが、memcpyの使い方がよくわかりません 例えば memcpy(a,b,16); と for(i=0;i<16;i++){ a[i]=b[i]; } では何が違うのでしょうか? 教えていただけたら幸いです。
- 締切済み
- 情報工学
補足
C言語のソースに直して演算処理したいのですがどうしていいかわからないです。 一応、C の勉強サイトで勉強したのですが・・・ 参考書を買って一から勉強し直したほうがいいのでしょうか?