Blizzard0319 发表于 2021-8-26 11:55:04

带你学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;
}
无法打印最长和最短的字符串

wp231957 发表于 2021-8-26 13:06:22

首先 你用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]
查看完整版本: 带你学C带你飞20讲求助