6-5 判断回文字符串 分数 10  全屏浏览题目 作者 陶利 单位 合肥师范学院 本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: int Judge_char( char *s ); 函数Judge_char判断输入字符串char *s是否为回文,若是则返回1,否则返回0。 裁判测试程序样例: #include <stdio.h> #include <string.h> #define MAXN 20 int Judge_char( char *s ); int main() { char s[MAXN]; scanf("%s", s); if ( Judge_char(s)==1 ) printf("Yes\n"); else printf("No\n"); printf("%s\n", s); return 0; } /* 你的代码将被嵌在这里 */ 输入样例: thisistrueurtsisiht 输出样例: Yes thisistrueurtsisiht 输入样例: thisisnottrue 输出样例: No thisisnottrue
时间: 2024-04-05 10:36:03 浏览: 153
以下是判断回文字符串的函数实现:
```c
int Judge_char(char *s) {
int len = strlen(s);
for (int i = 0; i < len / 2; i++) {
if (s[i] != s[len - i - 1]) {
return 0;
}
}
return 1;
}
```
该函数首先获取字符串长度 `len`,然后循环遍历前一半字符,如果当前字符和对应的后一半字符不同,说明不是回文字符串,直接返回 0。如果循环结束都没有返回 0,说明是回文字符串,返回 1。
相关问题
c语言代码;6-1 指针数组作函数参数,实现姓名排序。 分数 15 作者 陶利 单位 合肥师范学院 本题要求实现一个函数,实现学生英文名按照其在字典中的顺序进行排序,假设学生不超过20个。要求如下:用指针数组作函数参数,实现字符串的按字典顺序排列。 函数接口定义: void SortString ( char *ptr[], int n ); 其中 ptr[] 为字符指针数组, n 为学生数量。 裁判测试程序样例: #include <stdio.h> #include <string.h> #define MAX_LEN 10 #define N 20 void SortString ( char *ptr[], int n ); int main() { int i,n; char name[N][MAX_LEN]; //定义二维字符数组 char *pStr[N]; //定义字符指针数组 scanf("%d", &n); getchar(); //读走缓冲区中的回车符 for(i=0; i<n; i++) { pStr[i] =name[i]; gets(pStr[i]); } SortString(pStr, n); //英文姓名按字典顺序排列 for(i=0; i<n; i++) { puts(pStr[i]); //输出排序后的n个名字 } return 0; } /* 请在这里填写答案 */ 输入样例: 6 james john david jane mary elizabeth 输出样例: david elizabeth james jane john mary
```
#include <stdio.h>
#include <string.h>
#define MAX_LEN 10
#define N 20
void SortString(char *ptr[], int n);
int main()
{
int i, n;
char name[N][MAX_LEN]; //定义二维字符数组
char *pStr[N]; //定义字符指针数组
scanf("%d", &n);
getchar(); //读走缓冲区中的回车符
for (i = 0; i < n; i++)
{
pStr[i] = name[i];
gets(pStr[i]);
}
SortString(pStr, n); //英文姓名按字典顺序排列
for (i = 0; i < n; i++)
{
puts(pStr[i]); //输出排序后的n个名字
}
return 0;
}
// 比较两个字符串的大小
int CompareString(char *s1, char *s2)
{
return strcmp(s1, s2);
}
// 冒泡排序,将指针数组排序
void SortString(char *ptr[], int n)
{
int i, j;
char *temp;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - i - 1; j++)
{
if (CompareString(ptr[j], ptr[j + 1]) > 0)
{
temp = ptr[j];
ptr[j] = ptr[j + 1];
ptr[j + 1] = temp;
}
}
}
}
```
7-3 求给定数组元素的最大值 分数 40 简单 作者 陶利 单位 合肥师范学院 从键盘输入不超过50个非负整数,当输入为负值时,表示输入结束。试编程求出其中的最大值。 输入格式: 在一行中给出不超过50个非负整数(空格分隔),以负数结束。
在C++中,你可以通过循环遍历输入的数组并用一个变量记录当前找到的最大值来解决这个问题。以下是简单的算法步骤:
1. 初始化一个变量`max_value`为数组的第一个元素,假设它是最大值。
2. 使用`while`循环,从第二个元素开始逐个检查每个元素:
- 如果当前元素大于`max_value`,则更新`max_value`。
3. 当遇到负数时,跳出循环,因为这标志着输入的结束。
4. 循环结束后,`max_value`就是数组中的最大值。
下面是一个基本的C++代码示例来实现这个功能:
```cpp
#include <iostream>
int main() {
int num, max_value = 0;
std::cin >> num; // 获取第一个数字
while (num >= 0) {
if (num > max_value) {
max_value = num;
}
std::cin >> num; // 继续获取下一个数字
}
std::cout << "数组中的最大值是: " << max_value << std::endl;
return 0;
}
```
阅读全文