我不懂啥叫最小字符串
所以我以为是最短的字符串,或者是ascii码最小的字符串
本题要求编写程序,针对输入的N个字符串,输出其中最小的字符串。
输入格式: 输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。
输出格式: 在一行中用以下格式输出最小的字符串:
Min is: 最小字符串 输入样例: 5 Li Wang Zha Jin Xian 输出样例: Min is: Jin
怎么就能出Jin呢?
很懵逼,后来发现她用的是strcmp来比较的
strcmp是在string.h的函数,用来依次比较两个字符串每个字符的大小,如果字符一样就继续看下一位字符,不一样或者遇到末尾’\0’就停止对ascii的比较。
所以管这个叫最小字符串?
shabi一样。记录一下“错误”的代码吧
#include <stdio.h>
#include <math.h>
#pragma warning(disable:4996)
char a[81];
int main(int argc, char const* argv[]) {
int n, k = 0, maxer = 81, cnt = 0, max = 999999;
char tmp[81];
scanf("%d\n", &n);
for (int i = 0; i < n; i++) {
scanf("%c", &tmp[0]);
while (tmp[k] != '\n') {
cnt = cnt + tmp[k];
k++;
scanf("%c", &tmp[k]);
}
if (cnt < max) {
for (int j = 0; j < maxer; j++)
a[j] = 0;
for (int j = 0; j < k; j++)
a[j] = tmp[j];
maxer = k;
max = cnt;
}
k = 0;
cnt = 0;
}
printf("Min is: ");
for (int j = 0; j < maxer; j++)
printf("%c", a[j]);
return 0;
}