题目遇到问题,有高手解决,不胜感激!

Problem Description

lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。

Input

有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。

Output

每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。

Sample Input

you are my friend

#

Sample Output

4

我的思路:讲输入的字符串中的字母统计出来,之后在对其进行是否相同比较,但最后总是纠结于最后的空格。

附代码及分析:

#include<stdio.h>
#include<string.h>
  int main()
    { char a[10000],b[10000][100];
       int c[10000]={0};
      int i,j,k,n,len,t,s,sum,num;

    while(gets(a))
      {
      	if(strcmp(a,"#")==0)
      	  break;

      len=strlen(a);
        n=0;k=0;j=0;
	    for(i=0;i<len;i++)
		  {
		  	if(a[i]!=' ')   //在此开始记录单词
		  	  {
		  	  	b[j][n++]=a[i];
		  	  	k=1;        //k的作用就是判断单词是否在统计
		  	  }

		  	if(a[i]==' '&&k==1) //每个单词统计完之后,单词为加'\0'
		  	  {
		  	  	b[j][n]='\0';  //所有初始数据全部清零
		  	  	k=0;
		  	  	n=0;
		  	  	j++;
		  	  }

		  }
	         num=0;
	    for(i=0;i<=j;i++)    //这一块的目的就是为了去除统计进去的空格,统计单词个数,可感觉没用,应为下边最后还得判断最后是否为空格	       
                {
	       	if(strcmp(b[i]," ")!=0)
	       	  num++;
	       }
	        t=num;
	         sum=0;
	      for(i=0;i<t;i++)
	        {
	        	for(j=i+1;j<t;j++)
	        	  {
	        	  	  if(strcmp(b[i]," ")!=0)
	        	  	    {
	        	  	      if(strcmp(b[j],b[i])==0)

	        	  	           {
	        	  	           	strcpy(b[j]," ");
	        	  	           	sum++;
	        	  	           }

	        	  	    }

	        	  }
	        }
	     if(a[len-1]==' ') t--;    //纠结点就在此处,加上就AC,不加就WR
	    printf("%d\n",t-sum);
      }
      return 0;
    }

  望有高手指点迷津,最后一块if(a[len-1]==' ') t--;和中间的剔除空格统计字母那一块;  

题目遇到问题,有高手解决,不胜感激!

时间: 2024-11-02 00:51:05

题目遇到问题,有高手解决,不胜感激!的相关文章

LeetCode OJ平台上Maximum Subarray题目O(n)复杂度解决方式

原始题目例如以下,意为寻找数组和最大的子串,返回这个最大和就可以. Find the contiguous subarray within an array (containing at least one number) which has the largest sum. For example, given the array [?2,1,?3,4,?1,2,1,?5,4], the contiguous subarray [4,?1,2,1] has the largest sum =

华为应聘测试题目——找零钱(递归解决)

找零钱 描述: 我们知道人民币有1.2.5.10.20.50.100这几种面值.现在给你n(1≤n≤250)元,让你计算换 成用上面这些面额表示且总数不超过100张,共有几种.比如4元,能用4张1元.2张1元和1张2元.2张2元, 三种表示方法. 题目类别: 循环 难度: 初级 分数:   运行时间限制: 10 Sec 内存限制: 128 MByte 阶段: 招聘管理 输入: 输入有多组,每组一行,为一个整合n.输入以0结束. 输出: 输出该面额有几种表示方法. 样例输入: 1 4 0 样例输出

遇到的一个JS原型的问题,还没得到解决

今天写代码的时候出现了一些问题.首先我的html文件是这样的 <div id = "tag_add" onclick="addUser()"></div> 恩恩,很清楚,调用了addUser()方法 var addUser = function () { var i=0; document.onkeydown = function(e){ var ev = document.all ? window.event : e; if(ev.keyC

UTF8带BOM和不带BOM(转载)

UTF-8 不需要 BOM,尽管 Unicode 标准允许在 UTF-8 中使用 BOM.所以不含 BOM 的 UTF-8 才是标准形式,在 UTF-8 文件中放置 BOM 主要是微软的习惯(顺便提一下:把带有 BOM 的小端序 UTF-16 称作「Unicode」而又不详细说明,这也是微软的习惯).BOM(byte order mark)是为 UTF-16 和 UTF-32 准备的,用于标记字节序(byte order).微软在 UTF-8 中使用 BOM 是因为这样可以把 UTF-8 和 A

UTF8文件带BOM引起的问题

起因是公司iOS端竟然加载除了HTML代码,百思不得其解,查文献,原来如此... UTF-8 不需要 BOM,尽管 Unicode 标准允许在 UTF-8 中使用 BOM.所以不含 BOM 的 UTF-8 才是标准形式,在 UTF-8 文件中放置 BOM 主要是微软的习惯(顺便提一下:把带有 BOM 的小端序 UTF-16 称作「Unicode」而又不详细说明,这也是微软的习惯).BOM(byte order mark)是为 UTF-16 和 UTF-32 准备的,用于标记字节序(byte or

2014年七月华为校招机试题目--最难的一道, 呵呵!

今天百无聊赖之时, 漫心看到14年的华为校招机试题目, 一共三道, 前两道皆是平平, 第三道却柳暗花明, 让人眼前一亮. 咋一看, 饶有趣味, 看似平淡无奇, 然而却玄机颇深(对我这种弱渣而言).(不过对于ACMer, 好像应该用基础算法, 就能解决!) (然而我也只会基础的算法!!忏愧的紧!!!).如果有幸被大神看到, 能指点我一两招, 不胜感激!  下面是题目和我的详细题解思路(可供巨巨一笑!嘿嘿!). 2014年七月华为校招机试题目: 第三题: 输入一个正整数X,在下面的等式左边的数字之间

经测试稳定可用的蓝牙链接通信Demo,记录过程中遇到的问题的思考和解决办法,并整理后给出一个Utils类可以简单调用来实现蓝牙功能

说明:这是本人在蓝牙开发过程中遇到过的问题记录和分析,以及解决办法. 在研究过程中,许多的前人给出的解决方案和思路指导对我相当有帮助,但并非都是可采取的解决方法, 经过本人对这些方法的测试和使用过后,给出自己的理解和解决方案,不一定是正确的,但这些方法的确可以解决问题. 如果有人遇到同样的问题,并且看到我的文章解决,那是我的荣幸. !!!!!!但特别需要说明的是,看的越多,不明白的越多,我的看法可能是完全错误的,这些方法只是暂时解决了我的问题, !!!!!!如果有人发现了我的错误,请私信或评论告

使用CocoaPods的pod install 遇到的错误,未解决(Xcode版本v6.4,Mac OS版本v10.10.4)

转载请标明出处:http://blog.csdn.net/android_ls/article/details/47059957 一.CocoaPods 是一款很好的依赖管理工具,其安装步骤大致如下: 1.首先确保开发环境中已经安装了 Ruby(一般安装了 XCode,Ruby 会被自动安装上) 建议使用淘宝提供的 Gem源,在终端执行下列命令: $ gem sources --remove https://rubygems.org/ $ gem sources -a http://ruby.t

安装ORACLE_RAC遇到的问题与解决方法

while running: /u01/app/oracle/product/10.2.0/db_1/root.sh Checking to see if Oracle CRS stack is already configured/etc/oracle does not exist. Creating it now.Setting the permissions on OCR backup directorySetting up NS directoriesPROT-1:Failedtoini