2134324009823984932973957384

2134324009823984932973957384823684234729917374928374。c言語のプログラム
2134324009823984932973957384823684234729917374928374
0
入力する
1
出力されます 各桁の和表示たい

include<stdio h>
define Num 1000
int main(){
long long A[1000]={0};
int Sum[Num]={0};
int a,i,j;
for (i=0;i<Num;i++){
scanf("%lld",&A[i]);

a=A[i];
if(a==0){
break;
}
for(j=0;j<Num;j++){
if(a==0){
break;
}

Sum[i]+=a%10;
a=a/10;

}

}
for(i=0;i<Num;i++){
if(Sum[i]!=0){
printf("%d\n",Sum[i]);
}

}
return 0;
}

まずlong longの有効範囲は「– 9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807」なのでこの範囲外の数値は代入できません。18桁以下に区切ってから入力してあげればまずは問題ないでしょうint Sum[]が配列である理由がよくわかりませんでした。各桁の和を求めたいなら、入れる箱は1つでよいのでは。というのを踏まえて以下に修正した結果動作しました。各桁の和ってなんでしょう。質問文では意味不明な数字が並べられていますが。122334560と入力したとき、10の位の和111の位の和15と出力するようなプログラムってことですか?私の理解力がなくてすみません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です