代码:
#include <stdio.h>
int main()
{
int n, num1,num2,num3, reverse;
printf("Enter the number to reverse:\n");
scanf("%d", &n);
num1 = n / 100;
num2 = (n % 100) / 10;
num3 = (n % 10) / 100;
reverse = num3*100+ num2*10;
printf(" The reverse is %d", reverse);
system("pause");
return 0;
}
我想在不使用任何循环的情况下反转一个数字,我包括了到目前为止的步骤,但我不确定它是否正确:
这些步骤正确吗?我试着使用这个程序,但没有任何运气,直到我得到正确的步骤。
例子:
Enter a number: 263
Output: 362
数字总是3位数,没有任何变化
如果中间数字是这样计算的
num2=(num%100)/10;
然后,低有效数字的计算如下
num3 = (num % 10)/1;
或者只是
num3 = num % 10;
这份声明
reverse = num3+ num2+ num1;
没有给出你所期待的。你应该改写
reverse = 100 * num3 + 10 * num2 + num1;
事实上你不需要计算数字。只需输入一个三位数作为三个独立的数字。:)
例如
#include <stdio.h>
int main( void )
{
unsigned int n1, n2, n3;
printf("Enter a three-digit number: ");
scanf("%1u%1u%1u", &n1, &n2, &n3);
printf("Reversed number is %u%u%u\n", n3, n2, n1);
return 0;
}
程序输出可能如下所示
Enter a three-digit number: 263
Reversed number is 362
如果不想输出前导零,那么可以在程序中包含If语句。而不是这句话
printf("Reversed number is %u%u%u\n", n3, n2, n1);
你可以写
printf("Reversed number is ");
if (n3) printf("%u", n3);
if (n3 || n2) printf("%u", n2);
printf("%u\n", n1);
例如,在本例中,如果要输入
100
然后输出将是
1
而不是
001
或者可以使用表达式100*n1 10*n2 n1
。例如
printf("Reversed number is %u\n", 100 * n3 + 10 * n2 + n1);
使用多样化的方法
int main()
{
char string[4];
int reverse = 0;
printf("Enter the number to reverse:\n");
scanf_s("%d", &reverse);
if (reverse > 999)
return 0;
sprintf_s(string, "%d", reverse);
char c1 = string[0];
string[0] = string[2];
string[2] = c1;
reverse = atoi(string);
printf(" The reverse is %d", reverse);
return 0;
}
或者如果你不想用atoi
int main()
{
char string[4];
int reverse = 0;
printf("Enter the number to reverse:\n");
scanf_s("%d", &reverse);
if (reverse > 999)
return 0;
sprintf_s(string, "%d", reverse);
printf(" The reverse is %c%c%c", string[2], string[1], string[0]);
return 0;
}
首先,你的num3是错误的,这是修改如下,其次,反向计算是错误的
#include <stdio.h>
int main()
{
int n, num1,num2,num3, reverse ;
printf("Enter the number to reverse:\n");
scanf("%d", &n);
num1 = n / 100;
num2 = (n % 100) / 10;
num3 = n%10 ;
// num1 , num2 , num3 are digits only , to make a number use the below step
reverse = 100*num3 + 10*num2 + num1;
printf(" The reverse is %d", reverse);
system("pause");
return 0;
}
我有这个方法: 我试着用这个方法颠倒过来: 这样调用这些方法: 结果: 我感兴趣的结果最终得到的值为FFFFFFB6;我需要FFFFFFB2。 setParameters方法不起作用,为什么?
1E 1B 01 13 6 [ 0001 1110 0001 1011 0000 0001 0001 0011 0110 ]通过进行筛选和加成转换为F6C336。(0x1E 现在,我不得不逆转这一计算。即从F6C336,我想得到1E 1B 01 13 6。 很抱歉我在位操作方面的知识很差。
问题内容: 给定一个十进制整数(例如65),如何反转Python中的基础位?即。以下操作: 看来该任务可以分为三个步骤: 将十进制整数转换为二进制表示形式 反转位 转换回十进制 步骤#2和3似乎很简单(这个相关的步骤#2 SO问题),但我卡在步骤#1。步骤#1的问题是使用填充零来检索完整的十进制表示形式(即65 = 01000001,而不是1000001)。 我到处搜寻,但似乎找不到任何东西。 问
问题内容: 对于 áéí 等特殊字符,我可以致电: 要获取相应的html实体,请执行以下操作: 我怎样才能将其 转回áéí ? 问题答案: 如果您使用编码,则可以使用以下过程: decode.php) 将所有HTML实体转换为它们的适用字符。 html_entity_decode() 与htmlentities()相反,它可以将字符串中的所有HTML实体转换为它们的适用字符。 例如
问题内容: 我需要反转用户输入的字符串。 我需要用最简单的方法完成它。我正在尝试做reverseOrder(UserInput),但是没有用。 例如,用户输入abc,我只是获取字符串并打印出cba 问题答案: 用于按正常顺序反向排序。
问题内容: 我下面有一个Enum类 并希望它得到相反的顺序。在.Net中,代码是这样的 在Java中,我试图做同样的事情。 但是,我无法做到。请告诉我如何用Java做同样的事情? 问题答案: 有一个内置方法可返回所有枚举常量的数组。您可以向后迭代。