質問編集履歴
2
改良後のソースコードとかを乗せた
test
CHANGED
File without changes
|
test
CHANGED
@@ -236,6 +236,10 @@
|
|
236
236
|
|
237
237
|
```
|
238
238
|
|
239
|
-
|
240
|
-
|
241
|
-
。
|
239
|
+
皆様のおかげでまた一歩前進できました。
|
240
|
+
|
241
|
+
今後ともきれいに書くように心がけていきたいと思います。
|
242
|
+
|
243
|
+
|
244
|
+
|
245
|
+
回答者様方ありがとうございました!
|
1
改良後のソースコードを乗せた
test
CHANGED
File without changes
|
test
CHANGED
@@ -140,6 +140,102 @@
|
|
140
140
|
|
141
141
|
```
|
142
142
|
|
143
|
+
```
|
144
|
+
|
145
|
+
改良後のソースコード
|
146
|
+
|
147
|
+
#include <stdio.h>
|
148
|
+
|
149
|
+
#include<string.h>
|
150
|
+
|
151
|
+
int main(void) {
|
152
|
+
|
153
|
+
char str1[100],str2[100],sum[200],oki;
|
154
|
+
|
155
|
+
scanf("%s %s",str1,str2);
|
156
|
+
|
157
|
+
int i,j,keta1,keta2,cal=0,pl[10000];
|
158
|
+
|
159
|
+
for(i=0;i<10000;i++) pl[i]=-1;//plを後の計算(桁繰り上げ)で用いるためにー1で初期化
|
160
|
+
|
161
|
+
for(keta1=i=strlen(str1)-1;keta1/2<i;i--){//str1を計算しやすいよう(桁を合わせるため)に反転
|
162
|
+
|
163
|
+
oki=str1[i];
|
164
|
+
|
165
|
+
str1[i]=str1[keta1-i];
|
166
|
+
|
167
|
+
str1[keta1-i]=oki;
|
168
|
+
|
169
|
+
}
|
170
|
+
|
171
|
+
for(keta2=i=strlen(str2)-1;keta2/2<i;i--){//str2も同様に
|
172
|
+
|
173
|
+
oki=str2[i];
|
174
|
+
|
175
|
+
str2[i]=str2[keta2-i];
|
176
|
+
|
177
|
+
str2[keta2-i]=oki;
|
178
|
+
|
179
|
+
}
|
180
|
+
|
181
|
+
for(i=0;i<=keta1;i++){//1つ1つ計算してpl配列に代入(桁繰り上げはしない)
|
182
|
+
|
183
|
+
for(j=0;j<=keta2;j++){
|
184
|
+
|
185
|
+
cal=(str1[i]-'0')*(str2[j]-'0');
|
186
|
+
|
187
|
+
if(pl[i+j]==-1)
|
188
|
+
|
189
|
+
pl[i+j]=0;
|
190
|
+
|
191
|
+
pl[i+j]+=cal;
|
192
|
+
|
193
|
+
}
|
194
|
+
|
195
|
+
}
|
196
|
+
|
197
|
+
|
198
|
+
|
199
|
+
|
200
|
+
|
201
|
+
for(j=0;pl[j]!=-1;j++){//桁繰り上げ
|
202
|
+
|
203
|
+
if(pl[j]>9){
|
204
|
+
|
205
|
+
if(pl[j+1]==-1)
|
206
|
+
|
207
|
+
pl[j+1]=0;
|
208
|
+
|
209
|
+
pl[j+1]+=pl[j]/10;
|
210
|
+
|
211
|
+
pl[j]%=10;
|
212
|
+
|
213
|
+
}
|
214
|
+
|
215
|
+
}
|
216
|
+
|
217
|
+
for(i=j=j-1;i>=0;i--){//反転処理をしていたのでもどす
|
218
|
+
|
219
|
+
|
220
|
+
|
221
|
+
sum[j-i]=pl[i]+'0';
|
222
|
+
|
223
|
+
|
224
|
+
|
225
|
+
}
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
printf("%s\n",sum);
|
230
|
+
|
231
|
+
|
232
|
+
|
233
|
+
return 0;
|
234
|
+
|
235
|
+
}
|
236
|
+
|
237
|
+
```
|
238
|
+
|
143
239
|
|
144
240
|
|
145
241
|
。
|