鱼C论坛

 找回密码
 立即注册
查看: 2271|回复: 1

带你学C带你飞20讲求助

[复制链接]
发表于 2021-8-26 11:55:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include<stdio.h>

  2. int main()
  3. {
  4.         char ch,ch1[5][100] = {'\0'};
  5.         int i,j,n = 0,max = 0,min = 1000;
  6.        
  7.         for(i = 0;i < 5;i++){
  8.                 printf("请输入%d句话:",i+1);
  9.                 n = 0;
  10.                 while((ch = getchar()) != '\n'){
  11.                         ch1[i][n] = ch;
  12.                         n++;
  13.                 }
  14.                 ch1[i][n] = '\0';
  15.                 if(n > max){
  16.                         max = n;//找到最长的字符串的个数
  17.                 }
  18.                 else if(n < min){
  19.                         min = n;//找到最短的字符串的个数
  20.                 }
  21.         }
  22.        
  23.         printf("你输入了下边5句话\n");
  24.         for (i = 0; i < 5;i++){
  25.                 printf("%s\n",ch1[i]);
  26.                 if (sizeof(ch1[i]) == max + 1){
  27.                         max = i;//通过挨个比较字符串的个数来确定最长的字符串
  28.                 }
  29.                 else if(sizeof(ch1[i]) == min + 1){
  30.                         min = i;//通过挨个比较字符串的个数来确定最短的字符串
  31.                 }
  32.         }
  33.        
  34.         printf("其中最长的是:%s\n",ch1[max]);
  35.         printf("其中最短的是:%s\n",ch1[min]);
  36.        
  37.        
  38.         return 0;
  39. }
复制代码

无法打印最长和最短的字符串
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-8-26 13:06:22 | 显示全部楼层
首先 你用sizeof 这个肯定是不对的
我简单改了一下,但是没有考虑长度一致的情况

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include <string.h>

  5. int main()
  6. {
  7.         char ch,ch1[5][100] = {'\0'};
  8.         int i,j,n = 0,max = 0,min = 1000;
  9.         
  10.         for(i = 0;i < 5;i++){
  11.                 printf("请输入%d句话:",i+1);
  12.                 n = 0;
  13.                 while((ch = getchar()) != '\n'){
  14.                         ch1[i][n] = ch;
  15.                         n++;
  16.                 }
  17.                 ch1[i][n] = '\0';
  18.                 if(n > max){
  19.                         max = n;//找到最长的字符串的个数
  20.                 }
  21.                 if(n < min){
  22.                         min = n;//找到最短的字符串的个数
  23.                 }
  24.         }
  25.         
  26.         printf("你输入了下边5句话\n");
  27.         for (i = 0; i < 5;i++){
  28.                 printf("%s\n",ch1[i]);
  29.                 if (strlen(ch1[i]) == max){
  30.                         max = i;//通过挨个比较字符串的个数来确定最长的字符串
  31.                 }
  32.                 if(strlen(ch1[i]) == min ){
  33.                         min = i;//通过挨个比较字符串的个数来确定最短的字符串
  34.                 }
  35.         }
  36.         
  37.         printf("其中最长的是:%s\n",ch1[max]);
  38.         printf("其中最短的是:%s\n",ch1[min]);
  39.         
  40.         
  41.         return 0;
  42. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 09:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表