题目内容: 本题要求编写程序,针对输入的N个字符串,输出其中最大的字符串。 输入格式: 输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。 输出格式 输出最大的字符串。
重要思路
1用循环来循环输入,输入一次比较一次
很像之前写的一个判断时间范围的一道题目
2类似于比较大小,但这个的赋值不想求max是用copy来实现的
3为什么从i=1开始,最开始的那个已经读完了,不然如果是在循环里来的话第一个cmp和cpy都会出现和空的字符串比较
#include <stdio.h>
#include <string.h>
int main() {
int N;
scanf("%d", &N); // 输入字符串的个数
char maxString[81]; // 假设字符串的最大长度为80
scanf("%s", maxString); // 先读取第一个字符串作为当前最大字符串
for (int i = 1; i < N; i++) {
char currentString[81];
scanf("%s", currentString); // 读取下一个字符串
// 使用strcmp函数比较字符串大小
if (strcmp(currentString, maxString) > 0) {
// 如果当前字符串大于最大字符串,则更新最大字符串
strcpy(maxString, currentString);
}
}
// 输出最大字符串
printf("%s\n", maxString);
return 0;
}