当前位置:编程学习 > C/C++ >>

c语言编程问题!!!!!

 编写程序,求所有的四位奇数中各位数字之和为13的倍数的数的个数。

答案1.

#include <stdio.h> 


void main( )

{ int a,b,c,d,x,n=0;

for(x=1000;x<=9999;x++)


{a=x/1000;


b=(x%1000)/100;

c=(x%100)/10;


d=x%10;

if(x%2==1 && (a+b+c+d)%13==0)  


n++;  

}


    printf("n=%d\n",n);              

}




答案2.

#include <stdio.h>
void main()
{
int j,i,s=0,t=0,m;
for(i=1001;i<=9999;i=i+2)
{m=i;
for(j=1;j<=4;j++)
s+=m%10,m=m/10;
if(s%13==0)
t++;
}
printf("%d\n",t);
}
答案1是老师的,有342个,答案2是我的,有350个,不知道哪里错了,还请指点下!!!!感激不尽!!!!!
追问:题就是这样啊,求所有的四位奇数中各位数字之和为13的倍数的数的个数。
老师的342个,我编的求出来有350个,难道我还多输出了哪几个????
答案:你的S没有归零

1039
1057
1075
1093
1129
1147
1165
1183
1219
1237
1255
1273
1291
1309
1327
1345
1363
1381
1417
1435
1453
1471
1507
1525
1543
1561
1615
1633
1651
1705
1723
1741
1799
1813
1831
1889
1903
1921
1979
1997
2029
2047
2065
2083
2119
2137
2155
2173
2191
2209
2227
2245
2263
2281
2317
2335
2353
2371
2407
2425
2443
2461
2515
2533
2551
2605
2623
2641
2699
2713
2731
2789
2803
2821
2879
2897
2911
2969
2987
3019
3037
3055
3073
3091
3109
3127
3145
3163
3181
3217
3235
3253
3271
3307
3325
3343
3361
3415
3433
3451
3505
3523
3541
3599
3613
3631
3689
3703
3721
3779
3797
3811
3869
3887
3901
3959
3977
3995
4009
4027
4045
4063
4081
4117
4135
4153
4171
4207
4225
4243
4261
4315
4333
4351
4405
4423
4441
4499
4513
4531
4589
4603
4621
4679
4697
4711
4769
4787
4801
4859
4877
4895
4949
4967
4985
5017
5035
5053
5071
5107
5125
5143
5161
5215
5233
5251
5305
5323
5341
5399
5413
5431
5489
5503
5521
5579
5597
5611
5669
5687
5701
5759
5777
5795
5849
5867
5885
5939
5957
5975
5993
6007
6025
6043
6061
6115
6133
6151
6205
6223
6241
6299
6313
6331
6389
6403
6421
6479
6497
6511
6569
6587
6601
6659
6677
6695
6749
6767
6785
6839
6857
6875
6893
6929
6947
6965
6983
7015
7033
7051
7105
7123
7141
7199
7213
7231
7289
7303
7321
7379
7397
7411
7469
7487
7501
7559
7577
7595
7649
7667
7685
7739
7757
7775
7793
7829
7847
7865
7883
7919
7937
7955
7973
7991
8005
8023
8041
8099
8113
8131
8189
8203
8221
8279
8297
8311
8369
8387
8401
8459
8477
8495
8549
8567
8585
8639
8657
8675
8693
8729
8747
8765
8783
8819
8837
8855
8873
8891
8909
8927
8945
8963
8981
9013
9031
9089
9103
9121
9179
9197
9211
9269
9287
9301
9359
9377
9395
9449
9467
9485
9539
9557
9575
9593
9629
9647
9665
9683
9719
9737
9755
9773
9791
9809
9827
9845
9863
9881
9917
9935
9953
9971
342


你的没错
你们老师只输出了 求所有的四位奇数中各位数字之和为13的倍数的数的个数。  printf("n=%d\n",n);
是这样的,你的s要在第一个for循环里没循环一次都要重新复制为0,不然你的s就是求的所有奇数的位数的值的总和!你在m= i这句后面加上这句s=0;就好了!

上一个:关于学习c语言。
下一个:ANSI C语言标准

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,