c语言 按逆序输出数字,输入了123 但输出的是3210,但检查不出错在哪里

作者&投稿:丘饺 (若有异议请与网页底部的电邮联系)
c语言写:输入一个三位正整数,然后逆序输出。如输入123,则输出321。 我写的如下,帮我检查看哪里错了。~

不用调换那么麻烦,你输出的时候倒序输出就可以了
for(i=2;i>=0;i--)
{
printf("%d",a[i]);
}

#include<stdio.h>
main()
{
int x,b0,b1,b2,s;
printf("inputx:");
scanf("%d",&x);
b2=x/100;
b1=(x-b2*100)/10;
b0=x%10;
s=b0*100+b1*10+b2;
printf("s=%d
",s);
}
运行结果:

扩展资料:main函数用法
C++中的main函数
C++继承了C语言的大部分特性,因此保留了“程序总是从main函数开始执行,且总是默认从main函数的return语句或结尾处结束运行”这一传统,但是要注意,C++中的main函数要想作为程序执行的出入口,必须写在全局(Global)范围,
不能写成某个结构体或某个类的成员。虽然main函数可以作为结构体或者类的成员函数,但相应地会失去作为程序出入口的功能。
C++中全局main函数的书写格式与C语言完全相同,功能也完全相同,且同一C++程序同样只能有一个全局main函数。
Java中的main函数
Java同样是以main函数作为程序执行出入口的,但Java作为“更纯洁”的面向对象语言,它的main函数与C/C++有很大的不同。
首先,返回值的概念淡化,在Java Application中main不允许返回值,因此int main是被禁止的,必须使用void main,int main仅限在JavaBean中使用。
其次,Java中所有的函数必须属于类,没有什么全局函数一说,因此main函数不能是全局成员,必须是某个类的成员。
第三,由于main函数变成了类的成员函数,因此要想直接被系统调用,还必须使用public static使其成为静态函数并具有公开权限。
第四,main函数的参数被简化,只需要提供字符串数组即可,不需要提供参数个数(这是由于Java的数组具有下标检查功能的原因)
Java Application中的main函数一般格式如下(类名可以自定义,但保存为Java源码时,主文件名必须与类名相同,否则可能无法运行)
public class MainDemo{
public static void main(String[]args){
//TODO:在此处写入主函数的内容
}
}
Java Applet的运行机制与Java Application完全不同,因此不需要main函数
C#中的main函数
C#中的main函数与Java大同小异,同样必须是类成员,同样使用字符串数组作唯一参数,同样是静态函数,同样的void main,
与之不同的是:main的首字母变成了大写,即"Main函数“,且是否限定为public级别已经无所谓了(默认没有public,但某些场合可能还是需要public)
另外,需要注意的是,C#中不再有”类名必须与主文件名同名“的限制,即使类名不和主文件名相同,程序照样可以运行。
C#应用程序中的main函数默认是这样的(注意main的首字母已是大写)
C#和C/C++、java不同的是C#不在拘泥于必须从main()函数开始执行,C#是属于事件触发。
class Program{
static void Main(string[]args){

第一个循环结束那里的,你的c会比预想中的要多乘以一次10

还有就是,你的程序也没法正确逆序输出100,110这类以0结尾的数

你想的也比较复杂了,其实这个题可以很简单的写:

#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
do
{
    printf("%d", n % 10);
    n /= 10;
} while (n > 0);
return 0;
}


c多乘了10 。 这种小程序你调试一下就好了。自己找错误很有趣的~
#include<stdio.h>
int main()
{
int c,n,m,s=0,k;
scanf("%d",&n);
k=n; //接下来是判断最大有个位还是十,百,千,万位
for(c=1;k!=0;c=c*10)
{
k=k/10;
}

/*~~~~输入3位数时候c等于1000了,所以最后多个0~~~~~*/
c /= 10;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
for(;n!=0;c=c/10) //开始逆序
{
m=n%10;
s=m*c+s;
n=n/10;
}
printf("%d\n",s);
return 0;
}

第一个for循环就有问题!!如果第一次进入的是个位数?还进循环?c=10:此时已经错了?你写程序?你是用穷举么??凭自己思路?
string num=""; //string存 倒序后的数字 ,可以用atoi 转换成int
while(n%10!=0)
{
int temp=n%10;

n=n/10;
char str=temp+'0'; //int 转成字符 (0~10 之内的转换是安全的)
num+=str;
}
printf("%s",num);


皮山县18432532016: c语言中如何实现输入一个整数实现倒序输出 -
致沈丹香: 定义一个整数类型的输入,然后让它正序输出,倒序输出相信是很多C语言初学入门一定会遇到的经典题目,下面就是我对整数的正序和倒序输出一点小小的总结. 1. 反序(倒序)输出 反序输出常用的思路就是按位取余,把取出来的值进行循环...

皮山县18432532016: 将一个正整数逆序输出(C语言 -
致沈丹香: #includeintmain(){intnum;scanf("%d",&num);inta,i;for(i=0;num>0;i++){a=num%10;printf("%d",a);num=num/10;}return0;}分析:首先,输入的是一个整数,因此最前面一位数不是零,所以我们可以用除10取余法写.a=num%10就是输出数字...

皮山县18432532016: C语言问题!!输入一个整数,将它逆序输出..例如reverse(123)的返回值是321 -
致沈丹香: 1、C 表示将输入的整数n传给reverse函数 2、C 表示定义一个long型变量res,并初始化 3、B 表示主函数(main)穿进来的值,如果为负数,则取反 4、B 倒置传入的参数number,res*10表示将原来res乘以10,再加上number%10;比喻说你传...

皮山县18432532016: c语言:任意输入一整数,编程输出其反序数 -
致沈丹香: #include<stdio.h> main() {int n,s=0;scanf("%d",&n);while(n){s*=10;s+=n%10;n/=10;}printf("%d",s); }您好,很高兴为您解答,流星不死为您答疑解惑 如果本题还有不懂的地方请追问,望采纳我的回答. 祝楼主学习进步. 上面的代码可以直接复制到编译器里,带换行.

皮山县18432532016: C语言逆序输出一个数,越简单越好,并且注意有0的情况,例如输入123,输出321;输入120,输出21 -
致沈丹香: main() { int i,t=10,s=0; scanf("%d",&i); while(i) {s=s*10+i%t; i/=10;} printf("%d",s); }

皮山县18432532016: C语言编程,输入10个整数,分别按顺序和逆序输出 -
致沈丹香: C语言通过输入十个整数然后分别顺序和逆序输出的编程思想和方法如下: 1.首先需要定义一个整型数组用于存储输入的10个整数.这里定义一个数组a. 2.然后利用for循环,接受从键盘输入的10个整数.这里使用i作为循环的游标变量. 3.输入完毕后,再次利用for循环来顺序输出存储在数组的十个数.这里同样使用局部变量i作为循环的游标. 4.接着,再次使用for循环来逆序输出存储在数组的十个整数.同样地,这里仍然需要一个局部变量作为循环游标.(方法与顺序输出大致相同) 5.代码编写完成后,点击运行程序,在调试程序的窗口即可看到最终的运行结果.

皮山县18432532016: c语言逆序输出整数 -
致沈丹香: 两种做法, 一种是用数组做,只要下标逆序输出就行了. 一种是楼下的知友写的,当成一个整数来做. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <stdio.h>void main(void) { int n,a[20], i= 0;printf("请输入个数:"); scanf("%d",&n); for(i=0;i<=n;i++) scanf("%d", a[i]); for ( i= n; i >= 0; i--) printf("%d ", a[i]); printf("\n"); }

皮山县18432532016: 用c语言.从键盘上输入N个整数,按逆序输出这些数. -
致沈丹香: #include<stdio.h>void main() {int sum[10];int i;for(i=0;i<10;i++)scanf("%d",&sum[i]);for(i=9;i>-1;i--)printf("%d ",sum[i]);}

皮山县18432532016: c语言,输入一个整数,将其逆序输出,求找错误... -
致沈丹香: 呵呵,这个很简单,也很容易犯错,你的s要初始化,不然就是你输入的123,结果就是1+2+3.然后结果自然为6了...声明的时候将s=0就OK了

皮山县18432532016: 求教c语言,用指针逆序数出二维数组的元素!!!十二个数就行了. -
致沈丹香: #include void dump(int *a, int c, int l) { int *p = a+l*c-1; int i,j; for(i = 0; i{ for(j = 0; jprintf("%d ", *p--); printf("\n"); } } int main() { int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}; dump((int *)a, 3,4); return 0; }

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