题目1(字符逆置)
输入一个字符串str(可以输入空格),将其内容颠倒过来,并输出。
题目链接:
解体思路:
我们可以自定义一个逆序函数Reverse。
然后,我们将每个单词倒置过来。
最后再输出整个字符串。
其中,left代表左边,right代表右边,我们通过循环来控制交换的次数,每次循环一次left++,right--.直至跳出循环,完成逆序。
gets()函数 会读取整行输入行,直至遇到换行符,然后丢弃换行符,储存其余字符,并在字符末尾添加一个空字符使其成为C字符串。常和 puts()函数 配对使用。
函数原型:char* gets(char* str);
代码:
#include<stdio.h>
void Reverse(char* str)
{
char* left = str;
char* right = str + strlen(str) - 1;
while (left < right)
{
char temp = *left;//通过中间变量,将字符倒置。
*left = *right;
*right = temp;
++left;
--right;
}
}
int main()
{
char str[10000] = {0};
gets(str);
//使用指针。
Reverse(str);
printf(str);
return 0;
}
题目2(三角形)
三角形判断
KiKi想知道已经给出的三条边a,b,c能否构成三角形,如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形或普通三角形)。
题目链接:
解题思路
判断三条边能否构成三角形,需要满足以下任一条件:
三角形任意两边之和大于第三边。
三角形任意两边之差小于第三边。
我们获取三角形的三个边长后,只需要判断它是否满足上面两个条件之一,如果满足上述条件之一,则可以构成三角形,如果不满足,则不能构成三角形。
在满足上述情况的条件下,如果三条边相等,则构成等边三角形,输出“Equilateral triangle!”。如果两条边相等则构成等腰三角形,输出“Isosceles triangle!”。其余情况则输出“Ordinary triangle!”,反之输出“Not a triangle!”。
#include<stdio.h>
int main()
{
int a, b, c;
while(scanf("%d %d %d",&a, &b, &c)!=EOF)
{
if(a + b >c && a + c > b && b + c > a)
{
if(a==b&& b == c)
{
printf("Equilateral triangle!\n");
}
else if(a!=b&&a!=c&&b!=c)
printf("Ordinary triangle!\n");
else
printf("Isosceles triangle!\n");
}
else
{
printf("Not a triangle!\n");
}
}
return 0;
}
祝大家生活愉快。
标签:字符,right,triangle,char,牛客,str,三角形,left,逆序 From: https://blog.csdn.net/2303_80645930/article/details/141994561