1 solutions
-
0
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; }
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
Information
- ID
- 10810
- Time
- 1000ms
- Memory
- 16MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By