给一个不多于5位的正整数。
要求:1:求出它是几位数;
2:分别输出每一位数字;
3:按逆序输出各位数字,例如原数为321,应输出123。
解答如下
#include <stdio.h>
int main()
{
int num,t[5],p=0;
scanf("%d",&num);
while(num)
{
t[p++]=num%10;
num/=10;
}
printf("它是%d位数\n",p);
printf("每一位数字:");
for(int i=0;i<p;i++)
{
printf("%d ",t[p-1-i]);
}
printf("\n逆序输出各位数字:");
for(int i=0;i<p;i++)
{
printf("%d ",t[i]);
}
return 0;
}
数值不断除以10取余数,直到数值为0
你题目的解答代码如下:
#include<stdio.h>
int main() {
int n,m=0,count=0;
int a[10] = {0};
scanf("%d", &n);
do {
a[count++] = n%10;
m = m*10 + n%10;
} while ((n/=10)!=0);
printf("是%d位数\n",count);
printf("输出每一位数字:\n");
for (int i = count-1; i >=0; i--)
printf("%d\n", a[i]);
printf("按逆序输出各位数字 %d\n",m);
return 0;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
#include <stdio.h>
int main()
{
int num,t[5],p=0;
scanf("%d",&num);
while(num)
{
t[p++]=num%10; //取余得到每位数字
num/=10; //除 10 更新
}
printf("它是%d位 的数\n",p);
printf("每一个数字为:");
for(int i=0;i<p;i++) //循环输出
{
printf("%d ",t[p-1-i]);
}
printf("\n逆序输出 各位数字:");
for(int i=0;i<p;i++)
{
printf("%d ",t[i]);
}
return 0;
}
#include <iostream>
#include <string>
using namespace std;
int main()
{
string a;
cin >> a;
int s = a.size();
cout << s << endl;
for (int i = 0; i < s; i ++)
cout << a[i] << ' ';
cout << endl;
for (int i = s - 1; i >= 0; i --)
cout << a[i] << ' ';
return 0;
}