c++编程求输入一个正整数(任意位数),倒序输出!

作者&投稿:前委 (若有异议请与网页底部的电邮联系)
C语言编程,任意输入一个正整数,倒序输出各位数字,并判断其是几位数。~

#include int main(int argc, char **argv){ char num[64]; scanf("%s",num); int length=0; while(num[length]!='\0') length++; printf("5498是倒序各位数字是:"); int counter=length-1; while(counter>=0) printf("%c,",num[counter--]); printf("其是%d位数。",length); return 0;}

#include
int main()
{int n,x;
scanf("%d",&x);
for(n=0;x;x/=10,n++)
printf("%d ",x%10);
printf("
它是%d位数
",n);
return 0;
}

【解题思路】
整数的逆序输出是很常见的题目,也比较简单。可以通过取余运算符(%)和除号(/)来完成,具体的思路如下:比如要对123逆序输出。
第一步是先对 123除以10取余数,这样就会得到3;
第二步是把123除以10取整,得到12,然后再把3*10+12%10,得到32;
第三步是把12除以10取整,得到1,然后再把32*10+1%10,得到321,
然后一直重复,直到原来的那个数为零。具体的代码如下:
  
【程序代码】
#include <iostream>                   //控制台操作头文件
  
int main()                            //主函数
{int A,B,C,i;                         //变量声明
 do{printf("请输入一个数字(0退出):"); //提示输入数字
    scanf("%d",&A);                   //从键盘输入数字赋值给A
    C=A;                              //让C等于A的值
    B=C%10;                           //让B等于C除以10取余数
    while(C=C/10) B=B*10+C%10;        //用循环让C实现倒序
    printf("%d倒序是%d

",A,B);     //显示倒序的结果
    }while(A);
 system("PAUSE");                     //屏幕暂停,以便看到显示结果
 return 0;                            //结束程序
}
  
【运行结果】
以上程序在DEV  C++中运行通过



第一种:

将第一种用for语句实现:

int  n;

printf("请输入一个 整数");

scanf("%d",&n);

for(n;n!=0;n/=10)

printf("%d",n%10);

printf("
");

第二种:

上面的方法存在多次调用printf函数的问题,而调用函数是需要额外的空间的时间的,这将会降低程序的运行速度。虽然在这里的调用次数并不多,但是这是应该考虑到的,

毕竟效率是评价程序的一个重要指标。

用一个变量来存储逆序后的数,只需调用一次printf函数。

int  n,m=0;//m为存储逆序整数的变量

printf("请输入一个 整数");

scanf("%d",&n);


while(n!=0) {
m=m*10+n%10;
n=n/10;
}
printf("%d
",m);



#include<iostream>
using namespace std;
long fun(long m)
{
int n = 0;
while(m > 0)
{
n = n * 10 + m % 10;
m /= 10;
}
return n;
}

int main()
{
long m;
printf("请输入一个正整数:");
scanf("%ld",&m);
printf("%ld\n",fun(m));
return 0;
}

用字符串。

#include<stdio.h>
#include<stdio.h>
main(){char s[500];
int i,L;
printf("input a positive integer data:\n");
scanf("%s",s);
L=strlen(s);
for (i=L-1;i>=0;i--) printf("%c",s[i]);
return 0;
}

#include<stdio.h>
main()\
{
int i,temp;
printf("输入一个整数\n");
scanf("%d",&i);
printf("逆序:");
while(i>0)
{
temp=i%10;
printf("%d",temp);
i=i/10;
}
printf("\n");
}


c语言编程,请输入一个华氏度。
程序如下:include <stdio.h> int main(){ int f;float c;printf("请输入一个华氏温度\\n");scanf_s("%d", &f);c = (float)(f - 32) * 5 \/ 9;printf("它的摄氏温度为:%.2f", c);} 如图:调试通过:

vb编程输入一个长方形求它面积的方法有几个
Private Sub Command1_Click();a = Val(InputBox("输入a的长"));b = Val(InputBox("输入b的长"));c = Val(InputBox("输入c的长"));If a + b > c And a + c > b And b + c > a Then;p = (a + b + c) \/ 2;s = Sqr(p * (p - a) * (p - b) * (p -...

VB编程输入任意一个正整数N如果N为偶数,求N的阶乘如果N为奇数,求1...
Imports System Module MainModule Sub Main()Dim N As Integer Console.WriteLine("请输入一个正整数 N:")N = Integer.Parse(Console.ReadLine())If N Mod 2 = 0 Then ' 如果 N 是偶数,计算 N 的阶乘 Dim factorial As Long = 1 For i As Integer = 2 To N Step 2 factorial *= i...

求助C语言编程实现:输入一个整数、一个实数、一个字符,在讲他们输出...
include<stdio.h>void main(){ int x; float f; char c; printf("请输入一个整数、一个实数、一个字符(用逗号分隔):"); scanf("%d, %f, %c", &x, &f, &c); \/\/注意格式串中的逗号后有空格! printf("整数=%d, 实数=%f, 字符=%c\\n", x, f, c);} ...

C++编程:写一函数,求一个字符串的长度。在main函数中输入字符串,并输出...
include<iostream> using namespace std;int main(){ int character(char *a);char a[20];int length;cout<<"请输入一个字符串:"<<endl;cin>>a;length=character(a);cout<<"字符串长度为:"<<length<<endl;return 0;}

c语言编程从键盘输入一个任意正整数,求其各位数字立方和。
include<stdio.h> intmain(){ inta;scanf("%d",&a);intb[10]={0};intk=0;while(a){ b[k]=a%10;a=a\/10;k++;} printf("%d\\n",k);inti=0,sum=0;while(i<=k){ sum=sum+b[i]*b[i]*b[i];i++;} printf("%d\\n",sum);} ...

编程实现;从键盘输入一个大写字母,输出该字母及其对应的ASCII码值...
include <stdio.h> void main(){ char c;printf("请输入一个大写字母:\\n");scanf("%c",&c);printf("您输入的大写字母是%c\\n其对应的ASCII码值是%d\\n",c,c);printf("小写字母是%c\\n其对应的ASCII码值是%d\\n",c+32,c+32);} ...

如何在编程软件中输入一个数?
1、首先打开DEV C++软件,点击“新建源代码”,在编辑页面输入以下代码。2、因为题目要求我们先输入一个整数,所以在定义变量时,就应该将其定义为整数型,注意,在输入,输出函数中,整数型对应的是“%d”。3、接下来就要对输入的整数进行判断,在C语言中,if是判断语句,所以用它来对整数进行判断。if...

...一个程序:有n个数已经从小到排列好,要求输入一个数将其插入原有的...
h>int main(int argc, const char *argv[]){int i = 0, j = 0;int a[11] = {10,20,30,40,50,60,70,80,90,100};int n = 0;int num = 10;int tmp = 0;printf("原有数组:\\n");for (i=0; i<num; i++){printf("%d ",a[i]);}printf("\\n");printf("请输入要...

求编程大神:怎么设计c++程序使在键盘上输入任意一个字符串,输出该字符...
include <iostream>#include <string>using namespace std;int main(){char str[100];cout<<"输入一个字符串"<<endl;gets(str);int i=0,k=0;for(i=0;i<strlen(str);i++)if(str[i]!=' ')k++;cout<<"输入的字符有"<<k<<"个"<<endl;} ...

修文县17877889678: 在C++中“从键盘上输入一个任意位数的正整数,判断它是几位数,并逆序输出该数” -
纵屈格尔: #include <iostream> using namespace std; int main() { int num,temp,i=0; cout<<"请输入一个数字"<<endl; cin>>num; while(num>0) { temp=num%10; ++i; cout<<temp; num=num/10; } cout<<endl; cout<<"这个数是"<<i<<"位数"<<endl; return 0; }

修文县17877889678: 输入一个任意长度的正整数,求出它是几位数. C++,C语言 -
纵屈格尔: #include using namespace std; int main() { string strInput; cin >> strInput; cout << strInput.length(); return 0; }

修文县17877889678: 求助,C++编写程序,提示用户输入一个正整数,计算出该数字的位数并把找出每一位上的数字. -
纵屈格尔: 将数字格式化成字符串,字符串的长度就是位数 int x; CString cs; cs.format("%d",x); int length = cs.Getlength(); //这个就是位数 排序的话,还是以字符串为基础,选择排序就行

修文县17877889678: 用C++从键盘输入一个正整数,输出各位数字之和 -
纵屈格尔: ,&number);while(number){sum+= number%10number/=10,sum);return 0;}printf("sum=%d"思想同楼上: #include%d" int main() {unsigned int number,sum=0;scanf(&quot

修文县17877889678: 编写C语言程序:计算一个正整数的各个位的数字之和 -
纵屈格尔: #includeint Sum(int n); void main() { int n=0; do{ printf("请输入一个正整数:"); fflush(stdin); scanf("%d",&n); }while(n<0); printf("%d各个位数字之和为:%d\n",n,Sum(n)); } int Sum(int n) { int sum=0; while(n != 0) { sum += n%10; n /= 10; } return sum; }

修文县17877889678: 输入任意一个正整数,从低位开始输出它各个位置上的数.c++语言. -
纵屈格尔: #include <stdio.h> int main() { int num=0; printf("input a num:"); scanf("%d",&num ); do { printf("%d" , num %10 ); //取个位 num /= 10 ; //缩小10倍,即去掉个位 }while ( num ); //直到num变为0 printf("\n"); return 0; }

修文县17877889678: C++语言中:任意输入一个正整数,如何求出这个正整数的数字之和. -
纵屈格尔: #include void main(){ int i,j,k,l; printf("请输入一个数字:\n"); scanf("%d",&i); j=i/100; k=i%100/10; l=i%100%10; printf("和为:%d\n",j+k+l); } 只适合3位数

修文县17877889678: c++要求输入任意的一个六位数的正整数,输出由该数每一位上的数字组成的最大数! -
纵屈格尔: #include using namespace std; int cmp(const void *a,const void *b) { return*(int*)a-*(int *)b; } int main() { string s; cin>>s; int a[6]; for(int i=0;i a[i]=s[i]-'0'; qsort(a,6,sizeof(int),cmp); for(i=5;i>=0;i--) cout cout return 0; }

修文县17877889678: C++的一道题,任给一个的正整数,要求: (1) 求出它是几位数. (2) 按逆序打印出各位数字. -
纵屈格尔: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25#include<iostream> usingnamespacestd;main() { floatn, m;cout << "请输入一个正整数"<< endl;cin >> n;m = n - (int)n;if(m != 0 || n <= 0)cout << "input error!"<< endl;...

修文县17877889678: C++求输入任意一个整数,将其逆序输出.(只要按逆序输出各个位上的数即可) -
纵屈格尔:[答案] 源程序如下: #include using namespace std; void main() { int n,c; coutcin>>n; while(n>0) { c=n%10; coutn=n/10; } cout} VC++测试如下:

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网