代码如下,如有帮助,请采纳一下,谢谢。
#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;
}
void main()
{
int n;
scanf("%d",&n);
int b = 0;
int m = n;
int i,a[6];
while(m > 0)
{
a[b] = m%10;
m = m/10;
b++;
}
printf("整数%d为%d位数\n",n,b);
printf("整数%d的每位数字是:",n);
for(i=b-1;i>=0;i--)
printf("%d ",a[i]);
printf("\n整数%d的倒置数是:",n);
for(i=0;i<b;i++)
printf("%d",a[i]);
printf("\n小于%d的平方数有:",n);
//
int d[400];
int num = 0;
i=1;
while(i*i<n)
{
d[num++] = i;
i++;
}
for(i=0;i<num;i++)
printf("%d ",d[i]);
}
循环除以10,直到0为止,记录除了几次就是几位数
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m