Tag: 逻辑

使用C中的递归函数测试回文结构

我尝试编写用于测试字符串的程序,如果它是一个回文或不是,但我总是得到输出,因为它不是一个。 我的代码出了什么问题? #include #include int is_palindrome(int start, int end, char *str) { if (str[start] != str[end]) return 0; else if (start == end) return 1; else return is_palindrome(++start, –end, str); return 0; } int main() { char str[20]; int length,start=0,end=length-1; int result; printf(“Enter the String.\n”); fgets( str, sizeof( str ), stdin ); length = strlen(str); […]

如何从字符串中获取两个数字并在一个变量中转换为int?

我正在努力完成我的作业,这是自今天下午以来我无法弄清楚的最后一件事。 比如说我在数组中有字符串,就像这个ABCD24EFG ,我想在一个变量中得到那个数字24 ,我初始化哪个类型是int 我可以使用一个数字来完成它并像这样转换它 number_holder = array_name[4] – ‘0’; 我将在number_holder获得2但是如何才能将整体变为24并将它们转换为int类型?

从数组中获取数字并分配给一个int

我正在做我的作业,试图从arrays中获取两个字符,例如ABC10DEF 我想获得10并将其存储在int类型中。 number_holder_1 = back[3] – ‘0’; number_holder_2 = back[4] – ‘0’; number = number_holder_1 * 10 + number_holder_2; 这不起作用我不知道为什么。 当我打印出number_holder_1的值时,它显示1 ,当我显示number_holder_2它显示0但是当我打印number它只显示0 我不知道怎么做。 更新: number_holder_1和number_holder_2数字定义为int类型。 back是ABC10DEF从主要传递。

是 – !(条件)从boolean(mask-boolean)获取完整位向量的正确方法?

在从高性能代码中删除条件分支时,将真实布尔值转换为unsigned long i = -1以设置所有位可能很有用。 我想出了一种从int b (或bool b )的输入获取此integer-mask-boolean的方法,取值为1或0 : unsigned long boolean_mask = -(!b); 获得相反的价值: unsigned long boolean_mask = -b; 以前有人看过这个建筑吗? 我有事吗? 当int值-1(我假设-b或-(!b)确实生成)被提升为更大的unsigned int类型时,它是否保证设置所有位? 这是上下文: uint64_t ffz_flipped = ~i&~(~i-1); // least sig bit unset // only set our least unset bit if we are not pow2-1 i |= (ffz_flipped < i) ? ffz_flipped […]

如何将int与分数相乘

我需要使用按位运算符将int乘以分数而不使用循环等。 例如,我需要将x乘以3/8。 我以为你会: int value = (x <> 3); // Divide by 8 但那不起作用。 我尝试使用谷歌搜索二进制时间分数,但这给出了浮点示例。 我不确切地知道这个作业是否适用于浮点数但是我的预感不是让我为此做好准备。 那有什么建议吗? 我需要向零舍入所以任何建议? 这不适用于数字-268435457。

AC程序,检查输入的日期是否有效

我被要求纠正一个程序,该程序检查用户输入的日期是否合法在C中。我尝试写它但我猜逻辑是不正确的。 //Legitimate date #include void main() { int d,m,y,leap; int legit = 0; printf(“Enter the date\n”); scanf(“%i.%i.%i”,&d,&m,&y); if(y % 400 == 0 || (y % 100 != 0 && y % 4 == 0)) {leap=1;} if (m<13) { if (m == 1 || (3 || ( 5 || ( 7 || ( 8 || ( […]

如何在C中使用按位或其他有效代码实现逻辑含义?

我想实现尽可能高效的逻辑操作。 我需要这个真值表: pqp → q TTT TFF FTT FFT 据维基百科称,这被称为“ 逻辑蕴涵 ” 我一直试图弄清楚如何在不使用条件的情况下使用C中的按位运算来实现这一点。 也许有人对此有所了解。 谢谢

在单一陈述中交换三个数字

是否有可能在一个语句中交换三个数字 例如: a = 10 b = 20 c = 30 我希望根据以下列表更改值 a = 20 b = 30 c = 10 这些值可以在一行中传输吗?

bitParity – 查找整数中的奇数位数

我必须创建一个函数bitParity(int x) ,它取一个整数,如果x的位forms有一个奇数0 ,则返回1否则返回0 。 例如: bitParity(5) = 0, bitParity(7) = 1 但是,这很难,因为我只能在这个问题上使用位运算符( ! ˜ & ˆ | + <>是唯一合法的)。 这意味着,没有循环, if-then或任何类型的东西。 可以使用常量。 到目前为止,我所做的并不起作用,但我认为我应该将整数的位移16,8和4倍,并将剩余的整数进行XOR 。 有人可以提供一些建议吗? 谢谢。

编写代码将给定数字转换为单词(例如1234作为输入应输出一千二百三十四)

编写C / C ++ / Java代码将给定的数字转换为单词。 例如: – 输入:1234 输出:一千二百三十四。 输入:10 输出:十 是否需要数字0到10的完整开关盒。 在每个数字名称后面添加“青少年”(例如:14:四个“青少年”。)从14到19。 而不是添加“ty”和20到99范围内的数字的数字名称。 等等。 我认为必须有一些更好的方法来解决这个问题。 C代码是首选。