标题:菜鸟求助。一个程序,有些读不懂的地方,忘大虾们指点下!
取消只看楼主
fifa_king
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-7-21
 问题点数:0 回复次数:1 
菜鸟求助。一个程序,有些读不懂的地方,忘大虾们指点下!
源程序如下:
#include<stdio.h>
#include<string.h>
#include<ctype.h>
char *dic[][40]={  
  "atlas","A volume of maps.",
  "car","A motorized vehicle.",
  "telephone","A commmunication device.",
  "airplane","A flying machine.",
  " "," "
};

int main(void)
{
  char word[80],ch;
  char **p;
  do{
    puts("\nEnter word:");
    scanf("%s",word);
    p=(char **)dic;   /*<-此为第一处看不懂的地方,这个语句到底什么意思,有什么用?*/
    do{
      if(!strcmp(*p,word)){
    puts("Meaning:");
    puts(*(p+1));
    break;
      }
      if(!strcmp(*p,word)) break;
      p=p+2;
    }while(*p);
    if(!*p) puts("Word not in dictionary.");
    printf("Another?(y/n):");
    scanf("%c%*c",&ch);  /*<-此为第二处看不懂的地方,同样是看不懂这个语句的用意。*/
  }while(toupper(ch)!='N'); /*<-第三处,为什么无论输入y,还是n,都不跳出循环,仍然从头开始执行*/
  return 0;
}
大虾们帮忙看看,帮忙解释下前2处的语句,看看第三处有什么问题,让do循环是个死循环。谢谢了
搜索更多相关主题的帖子: telephone include machine volume 源程序 
2008-08-07 16:45
fifa_king
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-7-21
得分:0 
十分感谢楼上兄弟的帮忙,受教非浅,十分感谢!

科学家会武术,谁也挡不住!
                      ——郭德纲
2008-08-08 09:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-227213-1-1.html




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

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