前提・実現したいこと
int配列で最上位の桁から「0」が入っている間は出力されないようにしたいです。
ここに質問の内容を詳しく書いてください。
・C言語で配列を用いて100桁以下の差を計算するプログラムを作っています。
該当のソースコード
c
1#include <stdio.h> 2#include <string.h> 3 4#define DIGIT 100 5 6int main(void) { 7 char a[DIGIT] = {0}, b[DIGIT] = {0}; 8 char sum[DIGIT] = {0},num[DIGIT]={0}; 9 int i, n, na, nb, r; 10 11 scanf("%s",num); 12 na = strlen(num); 13 for(i=0;i<na;i++) a[na-1-i]=num[i]-'0'; 14 15 scanf("%s",num); 16 nb=strlen(num); 17 for(i=0;i<nb;i++) b[nb-1-i]=num[i]-'0'; 18 19 n = (na>nb ? na : nb); 20 r=0; 21 for(i=0;i!=n;i++){ 22 if(a[i]>=b[i])r=a[i]-b[i]; 23 else { 24 r=(a[i]+10)-b[i]; 25 a[i+1]=a[i+1]-1; //次の位の値を1減らす 26 } 27 sum[i]=r; 28 29 } 30 for(i=n-1;i>=0;i--){ 31 ??? 32 printf("%d",sum[i]); 33 } 34 printf("\n"); 35}
試したこと
???に入る部分
if(sum[i]==0) continue; 0の時は出力しない
補足情報(FW/ツールのバージョンなど)
例
100000000000000000000↵
99999999999999999999
私のプログラム
000000000000000000001↵
正解のプログラム
1↵
となるようにしたいです。
回答4件
あなたの回答
tips
プレビュー