1 条题解

  • 0
    @ 2025-10-10 15:45:25

    C :

    #include<stdio.h>
    #include<string.h>
    int main(void){
    	char a[20][10],c;   //二维字符数组a用来存放每个单词 :第一个单词就是a[0]  以此类推 
    	int i=0,j=0,n=0,count=0;    //n为空格的数目  n+1就是单词的个数  count为字母的个数   
    	while((c=getchar())!='.'){   //如果输入的是'.'   就不会进入循环 这样就可以避免存入字符 点 
    		if(c!=' '){          
    			count++;  //如果输入的字符是字母  count++ 
    			a[i][j]=c;   //注意 第一次进入该循环的时候  i,j都是0(已经初始化了)   此时的i代表的是二维字符数组中第几个一位字符数组 
    			j++;    
    		}else{
    			a[i][j]='\0';   //如果输入的是空格 代表这个单词已经结束  因为后面使用的是字符串输出,所以在一维字符数组后面需要加上一个'\0' 
    			i++;    //i++   这个一位字符数组已经放入单词了   换下一个 
    			j=0;    //新的单词  新的j 
    			n++;    //记录空格的个数 
    		}
    	}
    	a[i][j]='\0';//因为最后一个单词后面没有空格了  所以我们要手动加上'\0'  不然后面的strcmp函数没办法用 
    	//到这里为止   我们已经成功将这一行字符  拆分成各个单词存放于二维数组a中
    	char b[10];   //b为输入的字符串  用于对比
    	//  i是从0开始的   所以目前  i+1的值就是单词的个数   i也就是a数组的最大有效下标(下标从0开始)
    	//如果不懂  那就用n+1  一个意思    n+1=i+1
    	scanf("\n");  //在你输入第二行之前 按了回车   
    	gets(b);
    
    	 for(i=0;i<=n;i++){
    	 	if(strcmp(a[i],b)==0){
    		  printf("%d",i+1);   //如果相等,就输出是第几个单词  i+1  显而易见 
    		  break; 
    		  } 
    	 }
    	 if(i>n)  printf("%d",count);//如果i>n  说明没找到  输入字母的个数 
    	return 0;
    } 
    

    C++ :

    #include <iostream>
    #include <cstring>
    
    using namespace std;
    
    bool judge(char *s1,char *s2){
    	
    	bool r = true;
    	
    	int i = 0;
    	if(strlen(s1) != strlen(s2)){
    		r = false;
    	}else{
    		for(i = 0;i < strlen(s1);i++){
    			if(s1[i] != s2[i]){
    				r = false;
    				break;
    			}
    		} 
    	}
    	
    	
    	return r;
    	
    }
    
    int main(){
    	char s[1000];
    	char f[100];
    	gets(s);
    	gets(f);
    	
    	char w[100] = {'\0'};
    	int i = 0,j = 0;
    	int c = 0;//第几个单词
    	int x = 0;
    	bool r = false;//有没有找到 
    	for(i = 0;s[i] != '.';i++){
    		if(s[i] != ' '){
    			w[j] = s[i];
    			j++;
    			x++;
    			
    			if(s[i + 1] == ' ' || s[i + 1] == '\0' || s[i + 1] == '.'){
    				w[j] = '\0';
    				c++; 
    				if(judge(w,f)){
    				   cout<<c<<endl;
    				   r = true;
    				   break;
    				} 
    				
    				j = 0;
    				
    			}
    		}
    	}
    	
    	if(r == false){
    		cout<<x<<endl;
    	} 
    	
    	return 0;
    } 
    

    Pascal :

    var
      s,s2:string;
      i,ii,count:longint;
    begin
      readln(s);
      readln(s2);
      i:=pos(s2,s);
      if i=0 then
      begin 
        for i:=1 to length(s) do if s[i] in ['A'.. 'Z','a'.. 'z'] then inc(count);
        writeln(count);
        halt;
      end;
      for ii:=1 to i-1 do if s[ii]=' ' then inc(count);
      writeln(count+1);
    end.
    

    Java :

    import java.util.Scanner;
    public class Main {
    
    	public static void main(String[] args) {
    		Scanner in = new Scanner(System.in);
    		String s = in.nextLine();
    		String x = in.nextLine();
    		String[] a = s.split(" ");
    		for(int i=0,y=1;i<a.length;i++,y++){
    			s.indexOf(x);
    			if(a[i].equals(x+".")){
    				System.out.println(y);
    			}
    		}
    	}
    }
    
    

    Python :

    s=input()
    f=input()
    s=s[0:len(s)-1] #截掉最后的.
    list=s.split()
    c=0
    flag = 0
    for i in range(0,len(list)):
        c = c + len(list[i])
        if list[i]==f:
            flag=1
            print(i+1)
            break
    
    if flag==0: print(c)
    
    • 1

    信息

    ID
    11
    时间
    1000ms
    内存
    512MiB
    难度
    10
    标签
    递交数
    2
    已通过
    1
    上传者