带你学C带你飞20讲求助
#include<stdio.h>int main()
{
char ch,ch1 = {'\0'};
int i,j,n = 0,max = 0,min = 1000;
for(i = 0;i < 5;i++){
printf("请输入%d句话:",i+1);
n = 0;
while((ch = getchar()) != '\n'){
ch1 = ch;
n++;
}
ch1 = '\0';
if(n > max){
max = n;//找到最长的字符串的个数
}
else if(n < min){
min = n;//找到最短的字符串的个数
}
}
printf("你输入了下边5句话\n");
for (i = 0; i < 5;i++){
printf("%s\n",ch1);
if (sizeof(ch1) == max + 1){
max = i;//通过挨个比较字符串的个数来确定最长的字符串
}
else if(sizeof(ch1) == min + 1){
min = i;//通过挨个比较字符串的个数来确定最短的字符串
}
}
printf("其中最长的是:%s\n",ch1);
printf("其中最短的是:%s\n",ch1);
return 0;
}
无法打印最长和最短的字符串 首先 你用sizeof 这个肯定是不对的
我简单改了一下,但是没有考虑长度一致的情况
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main()
{
char ch,ch1 = {'\0'};
int i,j,n = 0,max = 0,min = 1000;
for(i = 0;i < 5;i++){
printf("请输入%d句话:",i+1);
n = 0;
while((ch = getchar()) != '\n'){
ch1 = ch;
n++;
}
ch1 = '\0';
if(n > max){
max = n;//找到最长的字符串的个数
}
if(n < min){
min = n;//找到最短的字符串的个数
}
}
printf("你输入了下边5句话\n");
for (i = 0; i < 5;i++){
printf("%s\n",ch1);
if (strlen(ch1) == max){
max = i;//通过挨个比较字符串的个数来确定最长的字符串
}
if(strlen(ch1) == min ){
min = i;//通过挨个比较字符串的个数来确定最短的字符串
}
}
printf("其中最长的是:%s\n",ch1);
printf("其中最短的是:%s\n",ch1);
return 0;
}
页:
[1]