oj判断直角三角形题目c语言答案
时间: 2024-10-22 07:16:31 浏览: 34
在C语言中,判断一个三角形是否为直角三角形通常涉及计算两边长的平方和与第三边长的平方是否相等。如果满足a² + b² = c²的关系,则该三角形为直角三角形,其中c是最长的一条边,而a和b是其他两条边。
以下是一个简单的C程序,用于判断输入的三个整数是否构成直角三角形:
```c
#include <stdio.h>
int main() {
int a, b, c;
printf("请输入三角形的三条边长:\n");
scanf("%d %d %d", &a, &b, &c);
// 检查直角三角形条件
if (a > 0 && b > 0 && c > 0) {
if ((a * a) + (b * b) == (c * c)) {
printf("这是一个直角三角形。\n");
} else {
printf("这不是一个直角三角形。\n");
}
} else {
printf("输入的数值非法,应该都是正数。\n");
}
return 0;
}
```
在这个程序中,用户首先输入三边长,然后通过数学公式验证是否满足勾股定理。如果满足则输出直角三角形信息,反之则是非直角三角形。
相关问题
oj回文串题目c语言答案
在 C 语言中解决 "OJ回文串" 题目通常是指判断一个字符串是否是回文,即正读反读都一样的字符串。这里提供一个简单的解决方案:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
int isPalindrome(char str[], int start, int end);
int main() {
char input[100];
printf("请输入一个字符串:");
fgets(input, sizeof(input), stdin); // 注意fgets处理换行符
input[strcspn(input, "\n")] = '\0'; // 去除输入字符串尾部的换行符
if (isPalindrome(input, 0, strlen(input) - 1)) {
printf("%s 是一个回文串。\n", input);
} else {
printf("%s 不是一个回文串。\n", input);
}
return 0;
}
// 判断是否为回文的辅助函数
int isPalindrome(char str[], int start, int end) {
while (start < end) { // 只需比较一半的字符
if (str[start] != str[end]) {
return 0; // 如果任意一对对应位置的字符不相等,返回非回文
}
start++;
end--;
}
return 1; // 所有字符都匹配,返回回文
}
```
oj水仙花数,c语言
水仙花数是指一个三位数,它的各个位上的数字的立方和等于该数字本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
下面是用C语言编写求解水仙花数的程序:
```c
#include <stdio.h>
int main() {
int num, digit, sum;
printf("水仙花数:\n");
for(num = 100; num < 1000; num++) {
sum = 0;
int temp = num;
while(temp != 0) {
digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
if(num == sum) {
printf("%d\n", num);
}
}
return 0;
}
```
以上程序的实现思路是使用循环遍历从100到999的所有三位数,对每个数进行立方和的计算。通过将每个数的个位、十位和百位分别取出,计算它们的立方和。如果立方和等于原数字本身,则输出该数字。
运行上述程序后,会输出所有的水仙花数。
阅读全文