【编程】从键盘输入一个四位正整数。首先分离出该正整数中的每一位数字,并按逆序显示输出各位数字

#include <stdio.h>
#include <stdlib.h>

void main ()
{
int a,b,c,d,x;

printf("请输入一个四位正整数:");
scanf("&d",x);

if (x > 9999 || x < 1000)
{
printf("Input Error!\n");
exit(-1);
}
else
{
a=x / 1000;
b=x / 100 % 10;
c=x / 10 % 10;
d=x % 10;
}

printf("The Inverse Number is ");
scanf("%d",a + b * 10 + c * 100 + d * 1000);

}
这有什么错?为什么一直都是“Input Error!”?

两个地方错了。

第一,scanf()读入的应为变量的地址,所以

scanf("&d",x);

应该是

scanf("%d",&x)        //要用&x,否则程序出错


第二,

scanf("%d",a + b * 10 + c * 100 + d * 1000);

应该是

printf("%d",a + b * 10 + c * 100 + d * 1000);

温馨提示:内容为网友见解,仅供参考
无其他回答

...首先分离出该正整数中的每一位数字,并按逆序显示输出各位数字_百度...
第一,scanf()读入的应为变量的地址,所以 scanf("&d",x);应该是 scanf("%d",&x) \/\/要用&x,否则程序出错 第二,scanf("%d",a + b * 10 + c * 100 + d * 1000);应该是 printf("%d",a + b * 10 + c * 100 + d * 1000);

从键盘输入一个四位正整数。首先分离出该正整数的每一位数字,并按逆序...
cout<<"the minimum number which build by the "<<num<<" is:"<<endl;for(i=0;i<4;i++)cout<<a[i];cout<<endl;}

编程题 从键盘上输入1个4位的整数a,分解出每一位数字,按逆序的数字组合...
main(){int a,b=0,t;scanf("%d",&a);t=a;while(t>0){b=b*10+t%10;t\/=10;} printf("a=%d\n",a);printf("b=%d\n",b);} 例如:include<iostream> using namespace std;int main(){ int n;printf("please input n (xxxx):");scanf("%d",&n);while(n!=0){ cout<...

编程题 从键盘上输入1个4位的整数a,分解出每一位数字,按逆序的数字组合...
int a[4]={e,b,c,d};for(i=0;i<4;++i)baifor(j=0;j<4-i;++j){ if(a[j]<a[j+1]){ temp=a[j];a[j]=a[j+i];a[j+i]=temp;} } printf("max=");for(i=0;i<4;++i)printf("%d",a[i]);printf("\\nmin=%d",a[3]);} ...

输入一个4位数的正整数,编程逆序输出这个数?
输入4位的正整数,可以将其不断取商,取出四位数存在数组里,然后反系输出即可。

c语言作业:输入一个四位正整数,编程求出其四个数字并输出。(提示:利用...
include "stdio.h"int main(int argc,char *argv[]){int n,t,k;printf("Please enter a positive integer of 4 digits...\\nn=");if(scanf("%d",&n)!=1 || n<1000 || n>9999){printf("Input error, exit...\\n");return 0;}for(k=1,t=n;t;t\/=10,k*=10);printf("\\n...

c++编程 输入一个四位正整数,然后分别显示其千位数、百位数、十位数和...
简单方法:char a[10] = {0};scanf("%s", a);\/\/以字符串形式输入 assert(strlen(a)==4);\/\/这句可以不要 printf("%c %c %c %c\\n",a[0],a[1],a[2],a[3]);\/\/以字符形式输出 printf("%d %d %d %d\\n",a[0],a[1],a[2],a[3]);\/\/以ASCLL码形式输出 ...

...给一个不多于4位的正整数,求出它是几位数,并正序和逆序打印出各位数...
int main(){ int i=0; \/\/输入的数字 int n=0; \/\/几位数 int a[50]; \/\/存放每位的数字 printf("输入一个整数:");scanf("%d",&i);while(i!=0){ a[n]=i%10;i\/=10;n++;} printf("是%d位数\\n",n);for(int j=0;j<n;j++) \/\/逆序输出 printf("%d",a[j]);prin...

C#编程:输入一个4位数的正整数,编写程序,输出这个数的千位,百位,十位...
int xxxx = Mat \/ 1000; \/\/例如 4321 \/ 1000 = 4 int xxx = Mat % 1000 \/ 100; 例如 4321 % 1000 = 321 321 \/ 100 = 3 int xx = Mat % 100 \/ 10; 例如 4321 % 100 = 21 21 \/ 10 = 2 int x = Mat % 10; 例如 4321 % 10 = 1 DOS那种页面的话,要先获取你...

输入一个四位数,把该数倒过来输出。(vc编程)
include<stdio.h>void main(){ int num,a,b,c,d,num2; printf("请输入一个四位数的正整数:"); scanf("%d",&num); a=num\/1000;b=(num-a*1000)\/100;c=(num-a*1000-b*100)\/10;d=num-a*1000-b*100-c*10;printf("这个数到过来为:%d%d%d\\n",d,c,b,a);num2=d*1000...

相似回答