小明从图书馆借了n本书,每本书都有一个由字母构成的书名。请编写程序,找到最长的书名,并将其反转后输出。 输入格式 第一行:一个整数n,表示小明借的书的数量。 下一行:由空格隔开的书名,书名仅由字母构成,长度不超过30个字符。 1≤n≤100。c语言
时间: 2024-09-06 20:07:38 浏览: 33
输入一个大写字母,程序根据输入字符在字母表的顺序位置n,输出一个高度为n的金字塔图形
下面是一个使用C语言编写的程序示例,用于解决你所提出的问题。该程序首先接收书的数量,然后逐个读取书名,并找到最长的书名,最后将其反转并输出。
```c
#include <stdio.h>
#include <string.h>
int main() {
int n;
scanf("%d", &n); // 读取书的数量
char longestTitle[31]; // 用于存储最长书名
int maxLength = 0; // 最长书名的长度
char title[31]; // 用于存储当前读取的书名
// 循环读取每本书的书名
for (int i = 0; i < n; i++) {
scanf("%s", title); // 读取书名
// 检查当前书名是否是最长的
if (strlen(title) > maxLength) {
maxLength = strlen(title);
strcpy(longestTitle, title); // 更新最长书名
}
}
// 反转最长书名
int left = 0;
int right = maxLength - 1;
while (left < right) {
// 交换字符
char temp = longestTitle[left];
longestTitle[left] = longestTitle[right];
longestTitle[right] = temp;
left++;
right--;
}
// 输出反转后的最长书名
printf("%s\n", longestTitle);
return 0;
}
```
在运行这个程序时,你需要提供两行输入:第一行是一个整数n,表示书的数量;第二行是n个书名,书名之间用空格隔开。
阅读全文