本题要求编写程序,针对输入的N个字符串,输出其中最小的字符串。
输入格式:
输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。
输出格式:
在一行中用以下格式输出最小的字符串:
Min is: 最小字符串
输入样例:
5
Li
Wang
Zha
Jin
Xian
输出样例:
Min is: Jin
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
思路
-
使用
scanf
函数读取正整数N,表示输入的字符串数量。 -
定义两个字符串数组
str
和minStr
,分别用于存储当前读取的字符串和最小字符串。 -
使用
scanf
函数读取第一个字符串,将其赋值给minStr
作为初始最小字符串。 -
使用循环从第二个字符串开始读取,共进行N-1次循环。
-
在每次循环中,使用
scanf
函数读取一个字符串到str
中。 -
使用
strcmp
函数比较str
和minStr
的大小。如果str
小于minStr
,则将str
复制到minStr
中。 -
循环结束后,最小的字符串已经保存在
minStr
中。
代码
#include <stdio.h>
#include <string.h>
int main() {
int N;
scanf("%d", &N);
char str[80];
char minStr[80];
// 读取第一个字符串作为初始最小字符串
scanf("%s", minStr);
for (int i = 1; i < N; i++) {
scanf("%s", str);
// 使用strcmp函数比较字符串大小
// 如果str小于minStr,将str复制给minStr
if (strcmp(str, minStr) < 0) {
strcpy(minStr, str);
}
}
printf("Min is: %s\n", minStr);
return 0;
}