1 条题解

  • 0
    @ 2025-4-12 21:47:20

    C :

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    int main(void)
    {
    	char **str;
    	int *len;
    	int strlength;
    	int i=0,j;
    	int lenmin,lenmax;
    	str = (char **)malloc(sizeof(char *)*1);
    	str[i] = (char *)malloc(sizeof(char)*1001);
    	len = (int *)malloc(sizeof(int)*1);
    // 	while(i<5)
    	while(gets(str[i]))
    // 	while(scanf("%s",str[i]) != EOF)
    	{
    /*		gets(str[i]);*/
    		strlength = strlen(str[i]);
    		if(i==0)
    		{
    			lenmin = lenmax = strlength;
    		}
    		else
    		{
    			if(strlength < lenmin )
    			{
    				lenmin = strlength;
    			}
    			if(strlength > lenmax)
    			{
    				lenmax = strlength;
    			}
    		}
    		len[i] = strlength;
    		i++;
    		str = (char**)realloc(str,sizeof(char *)*(i+1));
    		str[i] = (char*)malloc(sizeof(char)*1001);
    		len = (int *)realloc(len,sizeof(int)*(i+1));
    	}
    	for(j=0;j<i;j++)
    	{
    		if(len[j] == lenmin)
    		{
    			puts(str[j]);
    		}
    	}
    	for(j=0;j<i;j++)
    	{
    		if(len[j] == lenmax)
    		{
    			puts(str[j]);
    		}
    	}
    	free(len);
    	for(j=0;j<i;j++)
    	{
    		free(str[j]);
    	}
    	free(str);
    	return 0;
    }
    

    C++ :

    #include <stdio.h>
    #include <string.h>
    
    char str[1000][1100]; 	// 定义储存字符串的变量
    int count[1000];		// 定义记录字符串长度的变量
    
    int main(){
    	int numOfStrings = 0;	// 记录字符串的总数
    	int maxValue=0x80000000, minValue=0x7FFFFFFF;	// 还记得求最大值最小值时如何定义的吗
    	while(gets(str[numOfStrings])){	// 读取字符串
    		count[numOfStrings] = strlen(str[numOfStrings]);
    		if(maxValue < count[numOfStrings]){
    			maxValue = count[numOfStrings];		// 获得最大值
    		}
    		if(minValue > count[numOfStrings]){
    			minValue = count[numOfStrings];		// 获得最小值
    		}
    		numOfStrings++;							// 注意字符串的数目增加了
    	}
    
    	// 下面输出长度最小的字符串
    	for(int i=0; i<numOfStrings; i++){
    		if(count[i] == minValue){
    			puts(str[i]);
    		}
    	}
    
    	// 下面输出长度最大的字符串
    	for(int i=0; i<numOfStrings; i++){
    		if(count[i] == maxValue){
    			puts(str[i]);
    		}
    	}
    
    	return 0;
    }
    
    

    Java :

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Scanner;
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		//字符串数组
            ArrayList<String> list = new ArrayList<>();
            //字符串长度数组
            ArrayList<Integer> list1 = new ArrayList<>(); 
     	
            while (sc.hasNextLine()) {
                String string = sc.nextLine();
                if ("".equals(string)) {
                    break; 
                }
     
                list.add(string);//将键盘接收的字符串添加到字符串数组中
                list1.add(string.length());//将字符串的长度添加到list1中
            }
            Collections.sort(list1); //对所有字符串的长度进行排序
     	//用for循环遍历字符串数组的所有元素,查看其长度与list1中最大最小的值是否相等
    	 //若相等便输出
    	//查找最小长度字符串
            for (int i = 0; i < list.size(); i++) {
                if (list.get(i).length() == list1.get(0)) {
                    System.out.println(list.get(i));
                }
            }
            //查找最大长度字符串
            for (int i = 0; i < list.size(); i++) {
                if (list.get(i).length() == list1.get(list1.size() - 1)) {
                    System.out.println(list.get(i));
                } 
            }
    }
    }
    
    
    
    • 1

    信息

    ID
    1734
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者