3条回答 默认 最新
- qfl_sdu 2021-06-17 14:19关注
代码如下,如有帮助,请采纳一下,谢谢。
#include <stdio.h> //求位数 void fun(int n,int buf[],int *m) { int i = 0; while(n > 0) { buf[i] = n%10; n /= 10; i++; } *m = i; } int main() { int n;//输入的整数 int buf[10] ={0};//存储各位数字 int nmb = 0; //位数 int i,j; int sz[10]; //存储(4)中的数字 int sznmb = 0; int sum = 0;//(5)求n的各位数字之和 printf("请输入n:"); scanf("%d",&n); //(1) fun(n,buf,&nmb); printf("%d是一个%d位数,各位数字分别为:\n",n,nmb); //(2) for (i = nmb-1;i>= 0;i--) { printf("%d ",buf[i]); } //(3) printf("\n逆序输出数字:"); for(i = 0;i<nmb;i++) printf("%d",buf[i]); printf("\n"); //(4) sznmb = 0; for (i = 1;;i++) { if( i * i < n) sz[sznmb++] = i; else break; } for (j = 0; j < sznmb;j++) { if(j < sznmb -1) printf("%d、",sz[j]); else printf("%d\n",sz[j]); } //(5)求n各位数字的和 for (i = 0;i<nmb;i++) { sum += buf[i]; } printf("%d的各位数字之和等于%d\n",n,sum); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报