解题思路:
注意事项:
参考代码:
#include<stdio.h> #include<string.h> int main () { char a[11]; int i,sum =0,ave=1,b[11]; gets(a); for(i=0;i<strlen(a);i++) { b[i]=a[i]-'0';//字符转换为单个数字 sum+=b[i]; ave*=b[i]; } printf("%d %d",sum,ave); return 0; }
0.0分
2 人评分
#include<stdio.h> int main() { long long x,a,sum=0,b=1; scanf("%lld",&x); if(x==0) sum=b=0; for(int i=1;i<=10;i++){ while(x!=0) { a=x%10; sum=sum+a; b=b*a; x=x/10; } } printf("%lld %lld",sum,b); }
#include<stdio.h> int main() { int x,a,sum=0,b=1; scanf("%d",&x); for(int i=1;i<=10;i++){ while(x!=0) { a=x%10; sum=sum+a; b=b*a; x=x/10; } } printf("%d %d",sum,b); }
陈冠希 2021-11-07 04:31:59 |
正确83%,求大哥讲讲错在哪里了
飞越的心 2021-11-08 00:25:04 |
1。int类型能放10位,最大为2147483647 ,乘起来(b)会溢出来,用long long保存比较大的数; 2。没有考虑到x=0的情况,sum=b=0;#include<stdio.h> int main() { long long x,a,sum=0,b=1; scanf("%lld",&x); if(x==0) sum=b=0; for(int i=1;i<=10;i++){ while(x!=0) { a=x%10; sum=sum+a; b=b*a; x=x/10; } } printf("%lld %lld",sum,b); }
陈冠希 2021-11-08 07:52:27 |
谢谢
陈冠希 2022-07-21 18:01:52 |
谢谢