c语言问题,求大神解答!
给一个不多于5位的正整数。①求出它是几位数。②分别输出每一位数字。③按逆序输出各位数字。例如原数位465,应输出564。④将所有平方值小于这个正整数的整数存储到一个数组中...
给一个不多于5位的正整数。①求出它是几位数。②分别输出每一位数字。③按逆序输出各位数字。例如原数位465,应输出5 6 4。④将所有平方值小于这个正整数的整数存储到一个数组中,并将数组中的元素一一输出。例如:57,输出:1,2,3,4,5,6,7
展开
2个回答
展开全部
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
int num,tmp,i,j;
int n[5]={0};//用于存储num分解后的每位上的数字,由于num不超过5位,所以数组有5个单元就可以了
int *sq_ls_num;
printf("请输入一个不多于5位的正整数: ");
scanf("%d",&num);
tmp=num;
i=0;
while(tmp!=0)
{
n[i]=tmp%10;
tmp=tmp/10;
i++;
}
printf("%d是一个%d位数\n",num,i);
printf("%d每位上的数字为:",num);
for(j=i-1;j>=0;j--)
{
printf("%4d",n[j]);
}
printf("\n%d每位上的数字为(逆序):",num);
for(j=0;j<=i-1;j++)
{
printf("%4d",n[j]);
}
/*将所有平方值小于这个正整数的整数存储到一个数组中,并将数组中的元素一一输出*/
j=sqrt(num);
sq_ls_num=(int *)malloc(j*sizeof(int));
printf("\n将所有平方值小于%d的整数为:",num);
for(i=1;i<=j;i++)
{
sq_ls_num[i-1]=i;
printf("%4d",sq_ls_num[i-1]);
}
printf("\n");
free(sq_ls_num);
return 0;
}
#include<math.h>
#include<stdlib.h>
int main()
{
int num,tmp,i,j;
int n[5]={0};//用于存储num分解后的每位上的数字,由于num不超过5位,所以数组有5个单元就可以了
int *sq_ls_num;
printf("请输入一个不多于5位的正整数: ");
scanf("%d",&num);
tmp=num;
i=0;
while(tmp!=0)
{
n[i]=tmp%10;
tmp=tmp/10;
i++;
}
printf("%d是一个%d位数\n",num,i);
printf("%d每位上的数字为:",num);
for(j=i-1;j>=0;j--)
{
printf("%4d",n[j]);
}
printf("\n%d每位上的数字为(逆序):",num);
for(j=0;j<=i-1;j++)
{
printf("%4d",n[j]);
}
/*将所有平方值小于这个正整数的整数存储到一个数组中,并将数组中的元素一一输出*/
j=sqrt(num);
sq_ls_num=(int *)malloc(j*sizeof(int));
printf("\n将所有平方值小于%d的整数为:",num);
for(i=1;i<=j;i++)
{
sq_ls_num[i-1]=i;
printf("%4d",sq_ls_num[i-1]);
}
printf("\n");
free(sq_ls_num);
return 0;
}
展开全部
其实其他网友回答都是对的,不过我想我说一下你肯定更好理解;他们的计算过程你估计看懂了,我就不说了,其实你的问题就是没理解a++,a++等同于a=a+1,所以当然它自己就变成了6,然后再计算a+=a++||b++,a就等于7;这也就是变量使用过程中要注意的问题,变量的值随时都可能改变,a++,a--,a+=1,a-=1等等都会使自身发生改变,如果你面的表达式是这样的:a+=(c=a+1)||b++,那么a+1的值只是给了c而不是给了自己,也就是只是参与了运算,但没影响自己的值,希望能帮助你理解!
/***********************************************************************************************************************/
哥们,看了你的补充,你说答案是6?不知道是答案真的错了,还是你想忽悠我们,如果答案是6,我建议你换一本书吧!这样的答案都能错,这书也太盗版了!如果你是忽悠我们的,那么我就不说什么了,大家在网上是讨论问题,给你仔细的解释了这么多是为了什么?不还是希望你能解决困惑,毕竟谁都有困惑的时候,就需要大家的相互帮助。还有,像这样的题目,是在不行了,你可以自己去上机编程试试呀,看到底是几!!!!
请采纳答案,支持我一下。
/***********************************************************************************************************************/
哥们,看了你的补充,你说答案是6?不知道是答案真的错了,还是你想忽悠我们,如果答案是6,我建议你换一本书吧!这样的答案都能错,这书也太盗版了!如果你是忽悠我们的,那么我就不说什么了,大家在网上是讨论问题,给你仔细的解释了这么多是为了什么?不还是希望你能解决困惑,毕竟谁都有困惑的时候,就需要大家的相互帮助。还有,像这样的题目,是在不行了,你可以自己去上机编程试试呀,看到底是几!!!!
请采纳答案,支持我一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询