_Phoebe__ 2021-12-18 23:39 采纳率: 96.9%
浏览 43
已结题

输入有问题 不知道该怎么改

写一个程序,让用户输入 n 句话,并计算出最长和最短的两句。
使用 1 个二维数组存储用户输入的 n句话。


```c
#include<stdio.h>
#include<string.h>
int main(){
    int n;
    printf("请输入句子数: "); 
    scanf("%d",&n);
    char str[n][100];
    int min,max;
    for(int i=0;i<n;i++){
        for(int j=0;(ch=getchar())!='\n';j++){
            str[i][j]=ch;
        }
        str[i][j]='\0';
    }
    min=0;
    max=min;
    printf("你输入了下面这几句话");
    for(int i=0;i<n;i++){
        scanf("%s\n",str[i]);
        temp=strlen(str[i]);
        min = temp < strlen(str[min]) ? i : min;
        max = temp > strlen(str[max]) ? i : max;
    }
     printf("其中最长的是:%s\n", str[max]);
     printf("其中最短的是:%s\n", str[min]);
     return 0;
    
}

```

  • 写回答

2条回答 默认 最新

  • 关注

    你题目的解答代码如下:

    #include<stdio.h>
    #include<string.h>
    int main(){
        int n;
        printf("请输入句子数: ");
        scanf("%d",&n);
        getchar();
        char str[n][100];
        int min,max;
        for(int i=0;i<n;i++){
            gets(str[i]);
        }
        min=0;
        max=min;
        printf("你输入了下面这几句话");
        for(int i=0;i<n;i++){
            printf("%s\n",str[i]);
            int temp=strlen(str[i]);
            min = temp < strlen(str[min]) ? i : min;
            max = temp > strlen(str[max]) ? i : max;
        }
         printf("其中最长的是:%s\n", str[max]);
         printf("其中最短的是:%s\n", str[min]);
         return 0;
    }
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月27日
  • 已采纳回答 12月19日
  • 创建了问题 12月18日

悬赏问题

  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题