第三题怎么用VC6.0做

 

代码如下,如有帮助,请采纳一下,谢谢。


#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