首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C程序有关问题:给4个数组成多边形,不能用if/else,switch==

2013-02-24 
C程序问题:给4个数组成多边形,不能用if/else,switch输入4个数为多边形的边:1. 是否能组成多边形?(用1/0

C程序问题:给4个数组成多边形,不能用if/else,switch==
输入4个数为多边形的边:
1. 是否能组成多边形?(用1/0表示)
没有任何一边大于剩下三边的和
2. 是否能组成正方形?(用1/0表示)

注:不能用if/else,switch等等条件句,不能用&&,||,>,>=,!等等逻辑运算符,不能用Boolean变量,尽量用简单的函数。

主要是不让用if,让我捉鸡了,不知道怎么用数学表达式变换了。。。。求解答思路! c 问题
[解决办法]
呵呵,关键是:~x/0xFFFFFFFF 这一句
执行结果:
quadrangle: 1, 1, 1, 4 = 0
quadrangle: 3, 4, 5, 6 = 1
square: 3, 4, 5, 6 = 0
square: 3, 3, 3, 4 = 0
square: 3, 3, 3, 3 = 1
按回车结束...


// 只能用 stdio.h
// 不能用 bool 和 逻辑运算符
#include <stdio.h>

typedef unsigned int uint;

uint square(uint a, uint b, uint c, uint d)
{
uint x = (a - b) 
[解决办法]
 (a - c) 
[解决办法]
 (a - d) 
[解决办法]
 (b - c) 
[解决办法]
 (b - d) 
[解决办法]
 (c - d);
return ~x / 0xFFFFFFFF;
}

uint quadrangle(uint a, uint b, uint c, uint d)
{
uint x = (a / (b + c + d)) + (b / (a + c + d)) + (c / (a + b + d)) + (d / (a + b + c));
return ~x / 0xFFFFFFFF;
}

int main()
{
printf_s("quadrangle: %d, %d, %d, %d = %d\n", 1, 1, 1, 4, quadrangle(1, 1, 1, 4));
printf_s("quadrangle: %d, %d, %d, %d = %d\n", 3, 4, 5, 6, quadrangle(3, 4, 5, 6));
printf_s("square: %d, %d, %d, %d = %d\n", 3, 4, 5, 6, square(3, 4, 5, 6));
printf_s("square: %d, %d, %d, %d = %d\n", 3, 3, 3, 4, square(3, 3, 3, 4));
printf_s("square: %d, %d, %d, %d = %d\n", 3, 3, 3, 3, square(3, 3, 3, 3));

printf_s("按回车结束...");
getchar();
return 0;
}

热点排行