C语言编程问题:输入一个10进制整数,各个倍数逆序后组成一个新的数,输出该数的2倍

作者&投稿:长兴莲 (若有异议请与网页底部的电邮联系)
C语言:编写程序,输入一个整数,将它逆序组成一个整数后输出。要求定义并调用函数reverse(number)~

#include
double reverse(int number);
int main()
{
int x;
double y;
scanf("%d",&x);
y=reverse(x);
printf("%.0lf",y);
return 0;}
double reverse(int number){
int sum=0,s;
if(number>=0){
while(number!=0){
s=number%10;
sum=sum+s;
sum=sum*10;
number/=10;}
return sum;}
else{
number=-number;
while(number!=0){
s=number%10;
sum=sum+s;
sum=sum*10;
number/=10;}
return -sum;
}
}
表达一个数比如m,m自身除以10时,要这样写,m/=10或者m=m/10绝对不能写成m/10;在C中这是非法语句,还有你漏了几个冒号,还有你的算法有问题,多乘了一个10,输入123时输出3210,这个算法问题你一定要仔细独立去寻找自己的函数部分肯定出了问题,还有当你输入是100时你输出的肯定得是1而不是001,这个情况你也没有考虑到

main不写了,关键代码:
int
num;
scanf("%d",
&num);
num
=
(num
>=
0
?
num
:
-num);//取该数的绝对值
int
count
=
0;//位数
printf("逆序:");
while(num
>
0)
{
printf("%d",
num
%
10);//得到最右一位输出
++count;
num
/=
10;//去掉最右一位
}
putchar('
');
printf("%d位数
",
count);

虽然不知道这个数的的位数,但是我们可以通过求余取模的方式来计算。例如你输入的数字是123,先对这个数求对10的余数,即123%10=3,这个数的个位数已经对我们没用了可以直接去掉123/10=12,123后一位的逆序为3;再求余数12%10=2,再去掉末位数12/10=1,后两位数的逆序为3*10+2=32;再求余数1%10=1,再去掉末尾数1/10=0,后三位的末位数为32*10+1=321。我们可以通过去掉末位数是否等于0来判断是否需要再求余数。
上述描述的编程如下:

#include<stdio.h>
int main ()
{
int n, m, t; //变量n保存输入的10进制整数,m保存输出的整数,t为中间变量
scanf("%d",&n);
m = 0;
while(n != 0) //n的值等于0说明输入数的所有位置已经考虑完
{
t = n % 10; //可以得到n的最后一位数
n = n / 10; //将n的最后一位数去掉
m = m*10 + t; //得到当前的输出数值
}
m = m * 2; //求逆序后数值的两倍
printf("%d\n",m);

return 0;
}

为了简单点 这里以小于100的数为例
#include <stdio.h>
main()
{
int x,x1,x2;
scanf("%d",&x);
x1=x/10;
x2=x%10;
x=(x2*10+x1)*2;
printf("%d",x);
getch();
}

不用数组也行,位数分出,反序乘2输入!!

两种做法,
一种是用数组做,只要下标逆序输出就行了。
一种是楼下的知友写的,当成一个整数来做。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include

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");
}


用c语言编程,从键盘上输入10个整数存放到一维数组中,输出其中最大的数...
解题思路:先键盘输入10个整数,假设数组的第1个是最大数max,同时设置最大值下标为0,接着for循环依次判断其是否大于最大数,如果大于替换掉最大值,并更新最大值下标,最后输出最大数和数组下标。参考代码:include<stdio.h> int main() { int i,a[10],max,maxi;\/\/输入10个整数 for(i=0;...

c语言程序设计答案 编程实现,从键盘输入一个字符,则输出其后的字符,如...
程序源码如下:define _CRT_SECURE_NO_WARNINGS\/\/VS环境下需要,VC不需要 include<stdio.h> void main(){ char a;\/\/定义一个字符 printf("请输入一个字符:");\/\/文字提示 scanf("%c", &a);\/\/输入一个字符 printf("其后续字符为:");\/\/文字提示 printf("%c\\n", a + 1);\/\/输出其...

C语言编程题 4.编程实现:由用户从键盘输入一串字符(以回车键结束),统 ...
include<stdio.h>#include<stdlib.h>int main(){ char a[128]; gets(a); int i=0; int c1,c2,c3,c4; c1=c2=c3=c4=0; while(a[i++]) { if(a[i]>='A'&& a[i]<='Z') c1++; else if(a[i]>='a'&& a[i]<='z') c2++; else if...

C语言编程问题:有3个整数,,,由键盘输入,输出其中最大的数,请编程序_百...
1.为什么输出的最大值时a?请注意你的第一个if,它的后面没有加{ ...},那么if判断之后执行的只能有一行代码,就是if(b>c);这不会做任何操作,继续执行下面的语句printf("max=%d",a);结果自然是a的值12了;2.且不说写的好不好,就你的这段程序会不会输出正确值,就你输入的12,15,116而...

C语言编程:从键盘任意输入三个数,编写求其最大值、最小值的函数,用指针...
程序如下:#include<stdio.h>#define MAXSIZE 10main(){int a[MAXSIZE];int k;printf("please inter ten number:");for(k=0;k<MAXSIZE;k++){ scanf("%d",&a[k]);} Fun(a);for(k=0;k<MAXSIZE;k++)printf("%d,",a[k]);} void Fun(int a[]){ int i;int temp;int Max...

C语言编程题:输入两个整数,计算并用浮点数显示其和,差以及相除的结果...
include <stdio.h> include <stdlib.h> int main (){ int a,b;printf ("input 2 int data: ");scanf ("%d %d",&a,&b);printf("\\n");printf("%d + %d = %f\\n",a,b, (float)(a+b));printf("%d - %d = %f\\n",a,b, (float)(a-b));\/\/ printf("%d * %d = %f\\...

C语言问题编程问题?
include <stdio.h> int main(){ int i,j,n=-1;float scores[30],sum=0,temp;printf("请输入n的值(0~30):");while(n<0 || n>30) scanf("%d",&n);if(!n) return 0;for(i=0;i<n;scanf("%f",&scores[i]),sum+=scores[i],i++)printf("请输入学生%d分数:",i+1);p...

用C语言编程:从键盘输入三个不相同的数,在屏幕输出最大数。
三个数x,y,z输出最大数,可以先比较x和y把最大值赋值给x,接着比较x和z,把最大值赋值给x,输出x即可。参考代码:include "stdio.h"int main(){ int x,y,z;scanf("%d%d%d",&x,&y,&z);if(x<y)x=y;if(x<z)x=z; printf("最大数为:%d",x); return 0;}\/*运行...

C语言编程:输入至多100个正整数,以0结束,求平均值;输出平均值和小于平...
a+n);if(a[n]==0)break;t+=a[n];} printf("\\nThe AVERAGE are %f\\nLess than the AVERAGE is:\\n",ave=t\/(n+0.0));for(t=0,n--;n>=0;n--)if(a[n]<ave)printf(++t%10 ? "%d " : "%d\\n",a[n]);if(t%10)putchar('\\n');return 0;} 有什么问题请续问 ...

我有个PASCAL语言编程问题!!急
我有个PASCAL语言编程问题!!急 我是个编程初学者从0起点开始自己编了个输入a和b的数值,然后输出sum的程序,运行时老不成功下面是程序programkjk;vara,b:integer;sum:integer;beginread(a,b);sum:=a+b;end.调试正常... 我是个编程初学者从0起点开始自己编了个输入a和b的数值,然后输出sum的程序,运行时老不...

化州市17846824441: C语言编程:从键盘上输入一个十进制数,将其转换成八进制数,然后输出. -
语彼迪巧: 非递归算法: #include <iostream> using namespace std; #include <math.h> #define MAXSIZE 20 typedef struct Stack {char node[MAXSIZE];int top; }Stack;int main() {Stack s;s.top=-1;int n;cout<<"请输入十进制数:"<<endl;cin>>n;int ...

化州市17846824441: C语言 输入一个十进制整数,并输出其个位上的数 -
语彼迪巧: 个位上,直接用这个数对10取余操作就可以了,如a%10

化州市17846824441: 用C语言编程"输入一个十进制整数,打印输出对应的八进制数和十六进制数." -
语彼迪巧: #include "Stdio.h" #include "Conio.h" main() { int a;scanf("%d",&a);printf("%x,%o",a,a);getch();} %x 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数

化州市17846824441: C语言:编写一个函数,其功能是将一个十进制正整数转换成任意进制整数,并输出转换结果? -
语彼迪巧: #include "stdio.h" #include "stdlib.h" main() { int n,x=0,a[100]; printf("请输入转换的数和进制:\n"); scanf("%d",&n); while(n){ a[x++]=n%2; n/=2; } --x; while(x>=0) printf("%d",a[x--]); printf("\n"); system("pause"); } 再送你一个进...

化州市17846824441: C语言从键盘上输入一个十进制整数,求该整数的每一位数字之和. -
语彼迪巧: int a=234567890; int sum=0; for(int i=0;i<9;i++) { sum+=a%10; a/=10; }

化州市17846824441: 求高手写C语言程序代码:"从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数." -
语彼迪巧: #includevoid ex10to2(); void ex10to8(); void ex10to16(); void main() { int select; do { printf("\n 0、退出 1、十进制~二进制 2、十进制~八进制 3、十进制~十六进制\n"); printf("请选择功能:"); scanf("%d",&select); if(select == 0) break; ...

化州市17846824441: 用C语言表示从键盘输入一个十进制整数,如果大于60,则在屏幕上输出“成功”,否则在屏幕上输出“失败”. -
语彼迪巧: #include "stdio.h" main() { int n; printf("输入一个十进制整数:\n"); scanf("%d",&n); if(n>60) printf("成功!"); else printf("失败!");}

化州市17846824441: c语言问题:输入一个十进制数,将其转化为二进制数后存放在数组中并输出 -
语彼迪巧: #include <stdio.h> void fun(int n) { int s[32],i = 0; while(n) { s[i++] = n % 2; n /= 2; } for(i = i-1; i >= 0; i--) { printf("%d",s[i]); } printf("\n"); } int main() { int n; scanf("%d",&n); fun(n); }

化州市17846824441: C语言编程实现:从键盘输入一个十进制整数,输出相应的二进制、十六进制. -
语彼迪巧: #include<stdio.h> void showbit(int n) { if(n>1){ showbit(n/2); printf(" "); } printf("%d",n%2); } void showoct(int n) { if(n>7){ showoct(n/8); printf(" "); } printf("%d",n%8); } void showhex(int n) { if(n>15){ showhex(n/16); printf(" "); } printf("%d...

化州市17846824441: c语言设计,输入一个十进制数,将其转换成N进制数(0<N<=16) -
语彼迪巧: 最简单的,不涉及算法的作法就是用printf的输出格式 %x 输出16进制%x 输出小写的a、b、c、d、e、f %X输出大写的A、B、C、D、E、F#include"stdio.h" int main() { int a; printf("请输入一个10进制整数:" ); scanf( "%d", &a); printf("该数转换为16进制数为: %X\n",a); return 0; }以下是运行结果:

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