36K+ 浏览量
强数是指其各位数字阶乘之和等于自身数字的数。例如:123 != 1!+2!+3! = 1+2+6 = 9 这里,123不是强数,因为各位数字阶乘之和不等于自身数字。145 != 1!+4!+5! = 1+24+120 = 145 这里,145是强数,因为各位数字阶乘之和等于自身数字。我们用来判断给定数字是否为强数的逻辑如下:while(n){ i = 1,fact = 1; rem = n % 10; while(i
15K+ 浏览量
求给定二进制数的二进制补码可以用两种方法计算:方法一:将给定的二进制数转换为反码,然后加1。方法二:从最低有效位(LSB)开始,第一个1位及其之前的位保持不变,其余位取反。求给定二进制数二进制补码的逻辑如下:for(i = SIZE - 1; i >= 0; i--){ if(one[i] == '1' && carry == 1){ two[i] = '0'; } else ... 阅读更多
3K+ 浏览量
程序员可以使用枚举数据类型创建自己的数据类型,并定义这些数据类型的变量可以保存哪些值。关键字是enum。语法枚举数据类型的语法如下:enum tagname{ identifier1, identifier2, ……., identifier n };示例下面是一个枚举数据类型的示例:enum week{ mon, tue, wed, thu, fri, sat, sun };这里,标识符的值是无符号整数,从0开始。Mon表示0,tue表示1,以此类推。示例以下是C语言枚举数据类型的程序: 在线演示#include main ( ){ enum week {mon, tue, wed, thu, fri, ... 阅读更多
45K+ 浏览量
尝试删除数组中存在的相同数字。结果数组包含唯一元素。删除数组中重复元素的逻辑如下:for(i=0;i
5K+ 浏览量
将两个数组作为输入,尝试合并或连接两个数组并将结果存储到第三个数组中。合并两个数组的逻辑如下:J=0,k=0 for(i=0;i
38K+ 浏览量
在给定的矩阵中,当大多数元素为零时,我们称之为稀疏矩阵。例如:3 x 3矩阵1 1 0 0 0 2 0 0 0在这个矩阵中,大多数元素为零,因此它是稀疏矩阵。问题检查矩阵是否为稀疏矩阵。解决方案假设矩阵中的零大于(行 * 列)/2。那么,该矩阵是稀疏矩阵,否则不是。程序以下是检查给定矩阵是否为稀疏矩阵的程序: 在线演示#include #include int main(){ int row, col, i, j, a[10][10], count ... 阅读更多
2K+ 浏览量
首先,让我们了解二进制数中的尾随零是什么。尾随零从最低有效位 (LSB) 开始,第一个 1 位之后的所有 0 位称为二进制数中的尾随零。示例104是十进制数104的二进制数是:(MSB)1101000(LSB)这里,MSB 指的是最高有效位。LSB 指的是最低有效位。从 LSB 开始,第一个 1 位之后有三个 0。尾随零的个数是三个。示例以下是计算给定数字尾随零个数的程序: 在线演示#include #include int main(){ int number, i, trail = 0, size; printf("Enter a ... 阅读更多
考虑以下因素,编写一个C程序来旋转给定数字的位。从左到右或从右到左旋转位。左旋转中,位从左向右移动。右旋转中,位从右向左移动。输入一个数字,根据用户程序从左或右旋转。用户必须在运行时输入数字和旋转次数。程序1以下是针对给定数字应用左旋转的C程序。 在线演示#include #include int main(){ int number, rotate, Msb, size; printf("Enter ... 阅读更多
56K+ 浏览量
三角形由三条边和三个角组成。根据三条边的长度,三角形有三种类型:等边三角形:三条边都相等。等腰三角形:两条边相等。不等边三角形:没有边相等。请按照以下算法编写相应的程序。算法步骤1:声明三角形的三个边。步骤2:运行时输入三个边。步骤3:如果side1 == side2 && side2 == side3,则转到步骤6步骤4:如果side1 == side2 || side2 == side3 || side3 == side1,则转到步骤7步骤5:否则,转到步骤8步骤 ... 阅读更多
4K+ 浏览量
输入起始时间和结束时间(小时、分钟和秒)。最后,我们需要找到起始时间和结束时间之间的差值。查找起始时间和结束时间之间差值的逻辑如下:while (stop.sec > start.sec){ --start.min; start.sec += 60; } diff->sec = start.sec - stop.sec; while (stop.min > start.min) { --start.hrs; start.min += 60; } diff->min = start.min - stop.min; diff->hrs = start.hrs - stop.hrs;示例以下是查找起始时间和结束时间之间差值的程序: 在线演示#include struct time { int sec; int min; int hrs; ... 阅读更多