A. C语言编程问题:输入一个10进制整数,各个倍数逆序后组成一个新的数,输出该数的2倍
虽然不知道做信带这个数的的位数,但是我们可以通过求余取模的方式来计算。例如你输入的数字是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;
}
B. c中如何使输出的值小数点后最末位0舍去
如果你仅仅是要最后一个0去掉,很麻烦。不是的话,就用g格式。
g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。
printf("%g\n",a);
仅仅要去掉最后一个0,方法楼上有代码了。麻烦 - -