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

写一个程序,让用户输入 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;
    
}

```

你题目的解答代码如下:

#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


scanf("%s\n",str[i]);
改为
printf("%s\n",str[i]);