| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 589 人关注过本帖
标题:【求助】请问程序中问号处什么意思
只看楼主 加入收藏
leoiader
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-7-5
收藏
 问题点数:0 回复次数:2 
【求助】请问程序中问号处什么意思
#include <stdio.h>
#include <stdlib.h>
 
#define MAXQUEUE 1001
 
int advance(int pointer)
{
  if (pointer < MAXQUEUE - 1)
    return pointer + 1;
  else
    return 0;
}
 
int main(void)
{
  char blank[MAXQUEUE];
  int head, tail;
  int nonspace;
  int retval;
  int c;
 
  retval = nonspace = head = tail = 0;
  while ((c = getchar()) != EOF) {
    if (c == '\n') {
      head = tail = 0;
      if (nonspace)
        putchar('\n');
      nonspace = 0;
    }
    else if (c == ' ' || c == '\t') {
      if (advance(head) == tail) {
        putchar(blank[tail]);                //??????
        tail = advance(tail);                //??????
        nonspace = 1;
        retval = EXIT_FAILURE;
      }
 
      blank[head] = c;
      head = advance(head);
    }
    else {
      while (head != tail) {
        putchar(blank[tail]);
        tail = advance(tail);
      }
      putchar(c);
      nonspace = 1;
    }
  }
 
  return retval;
}
搜索更多相关主题的帖子: return include blank 
2013-07-28 18:29
艺术的生活
Rank: 2
等 级:论坛游民
帖 子:51
专家分:77
注 册:2013-7-28
收藏
得分:0 
给个小建议,以后贴代码上来最好加一点注释。要不然的话看起来会有点头昏的。
2013-07-28 21:06
XiaoXiao_Ren
Rank: 3Rank: 3
来 自:西安
等 级:论坛游侠
威 望:1
帖 子:80
专家分:198
注 册:2013-7-17
收藏
得分:0 
回复 楼主 leoiader
#include <stdio.h>
#include <stdlib.h>

#define MAXQUEUE 1001

int advance(int pointer)
{
  if (pointer < MAXQUEUE - 1)
    return pointer + 1;
  else
    return 0;
}

int main(void)
{
  char blank[MAXQUEUE];
  int head, tail;
  int nonspace;
  int retval;
  int c;

  retval = nonspace = head = tail = 0;
  while ((c = getchar()) != EOF) {  //本人建议换一个控制符,请问EOF怎么在键盘上敲打出来,程序怎么结束?
    if (c == '\n') {                //这个'/n'控制符,一般在键盘输入字符结束后,敲打的Enter就是这个'\n',
                                    //所以每次敲打键盘结束后这里的head和tail都会变成0的。
                                    //如果是一次输入abcd  ggff  z方式还行,受影响小,但是如果一次输
                                    //入一个字符按一次Enter键,影响就大了。
      head = tail = 0;
      if (nonspace)
        putchar('\n');
      nonspace = 0;
    }
    else if (c == ' ' || c == '\t') {
      if (advance(head) == tail) {      //请问这个条件是怎么进入的?鄙人觉得进入不了,除非内存受到破坏
        putchar(blank[tail]);                //??????
        tail = advance(tail);                //??????
        nonspace = 1;
        retval = EXIT_FAILURE;
      }

      blank[head] = c;             //这里面就一处给blank数组赋值的,并且每次赋值为空格或者Tab,这什么作用?
      head = advance(head);        //这里的操作导致head大于tail
    }
    else {
      while (head != tail) {      //这里最终导致head和tail相等,因为之前要么head等于tail要么head大于tail
        putchar(blank[tail]);
        tail = advance(tail);     //不可能出现tail大于head
      }
      putchar(c);
      nonspace = 1;
    }
  }

  return retval;
}

[ 本帖最后由 XiaoXiao_Ren 于 2013-7-28 23:06 编辑 ]

否极泰来
2013-07-28 23:03
快速回复:【求助】请问程序中问号处什么意思
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041182 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved