Chinaunix

标题: 请教一个c语言问题 [打印本页]

作者: chinese2008    时间: 2007-04-24 19:08
提示: 作者被禁止或删除 内容自动屏蔽
作者: MMMIX    时间: 2007-04-24 19:35
自己的事情还是自己做吧
作者: chinese2008    时间: 2007-04-24 19:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: MMMIX    时间: 2007-04-24 19:41
原帖由 chinese2008 于 2007-4-24 19:37 发表
我就是不会阿,所以请教各位。

你试着自己做过了么?查过资料么?查过别人的实现类似功能的代码么?
作者: chinese2008    时间: 2007-04-24 19:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: shlander    时间: 2007-04-24 19:53
完全看不懂这题目想要做什么
作者: chinese2008    时间: 2007-04-24 19:56
提示: 作者被禁止或删除 内容自动屏蔽
作者: MMMIX    时间: 2007-04-24 19:58
原帖由 chinese2008 于 2007-4-24 19:46 发表
你别激动,

我犯不着为这个激动。
我已经想了两天了。想不出来阿,

想了两天没有任何结果?你是怎么想的?其实你只要想下你自己是怎么读这个文件的,然后再把你读的方式用程序表达出来就可以了。这样虽然做不到完美,也不至于毫无头绪。
你说的查别人的实现类似功能的代码,上哪查阿?

网上。当然,如果你不熟悉的话查起来就比较棘手了。
作者: cjaizss    时间: 2007-04-24 20:01

  1. while(输入组数)
  2. {
  3.      if(组数合要求)
  4.         跳出循环
  5. }
  6. for(i从0到组数-1)
  7. {
  8.     while(1)
  9.    {
  10.          输入一行;
  11.       if(空行)
  12.              跳出
  13.      }
  14. }
复制代码

[ 本帖最后由 cjaizss 于 2007-4-24 20:11 编辑 ]
作者: chinese2008    时间: 2007-04-24 20:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: cjaizss    时间: 2007-04-24 20:07
原帖由 chinese2008 于 2007-4-24 20:05 发表

你能不能仔细看下题目,然后讲讲思路。我觉得题目中所要求的输入没有一个明确的结束标识。

谁说没有?
看看我给你写的流程
作者: chinese2008    时间: 2007-04-24 20:17
提示: 作者被禁止或删除 内容自动屏蔽
作者: cjaizss    时间: 2007-04-24 20:23
输入是空行,不就判断出是该组的最后一行了吗?
你是初学者?
作者: chinese2008    时间: 2007-04-24 20:25
提示: 作者被禁止或删除 内容自动屏蔽
作者: cjaizss    时间: 2007-04-24 20:27

for(i从0到组数-1)
{
    while(1)
   {
         输入一行;
      if(空行)
             跳出
     }
}
当到最后一组的时候,最外面的那个大循环已经到了最后一次循环。
输入空行,跳出那个小循环,接着因为是大循环的最后一次循环,所以最终跳出整个循环
作者: MMMIX    时间: 2007-04-24 20:28
原帖由 chinese2008 于 2007-4-24 20:05 发表
你能不能仔细看下题目,然后讲讲思路。我觉得题目中所要求的输入没有一个明确的结束标识。

我不说了么?仔细想想你是怎么读这个输入文件的?你怎么判断这个输入文件是否符合要求?
作者: chinese2008    时间: 2007-04-24 20:29
提示: 作者被禁止或删除 内容自动屏蔽
作者: cjaizss    时间: 2007-04-24 20:32
原帖由 chinese2008 于 2007-4-24 20:29 发表

我的意思是输入最后一组的最后一行之后题目中并没有要求再输入空行了。

...
那就用空行或者文件结束来判定最后一个输入,总不能强行输入、100行
不要死脑筋的学。
作者: chinese2008    时间: 2007-04-24 20:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: MMMIX    时间: 2007-04-24 20:40
原帖由 chinese2008 于 2007-4-24 20:38 发表
是这样的,我们有个后台编译系统,由系统提供一些测试用例来判断你的程序的对错。所以不是你自己输入,而是系统自动输入。而系统输入的例子中最后一组的最后一行之后并没有空行。

难道不能用文件结束符来结束一个测试用例的输入?
作者: chinese2008    时间: 2007-04-24 20:43
提示: 作者被禁止或删除 内容自动屏蔽
作者: MMMIX    时间: 2007-04-24 21:06
原帖由 chinese2008 于 2007-4-24 20:43 发表
什么是文件结束符?能否写一下,不好意思,我是初学者。

你这也太初学了点。

用 "define:EOF" 做关键词(不包括引号)在 google 中搜索一下吧。
作者: nully    时间: 2007-04-24 23:21

  1. char buf[100];
  2. int i, n;

  3. fgets(buf, 100, stdin);
  4. buf[strlen(buf) - 1] = 0;
  5. n = atoi(buf);

  6. fgets(buf, 100, stdin);
  7. for(i = 0; i < n; ++i)
  8. {
  9.     while(1)
  10.    {
  11.          fgets(buf, 100, stdin);
  12.          if(buf[0] == '\n')
  13.                 break;
  14.          }
  15.          do_something_with_counter(buf, i);
  16.     }
  17. }
复制代码

反对求作业。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2