| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 559 人关注过本帖
标题:看看这个循环怎么自动多执行一次
只看楼主 加入收藏
theperfact
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2009-8-8
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:9 
看看这个循环怎么自动多执行一次
#include "conio.h"
char max(char  a,char b)
{  int t;
    if(a<b)
   {t=a; a=b;  b=t; }
   return(a);
}
main()
{
        char (*p)(char a,char b);
  p=max;
  char a,b,i,c;printf("fr\n");
  do{     
  printf("input two number:\n");
  scanf("%c",&a);printf("a=%c\n",a);
  scanf("%c",&b);printf("b=%c\n",b);
  c=(*p)(a,b);
  printf("max=%c\n",c);
  printf("wan\n");
  }
  while (a!=97);
  getch();
}
搜索更多相关主题的帖子: ccc 
2009-08-16 15:31
jd205
Rank: 2
等 级:论坛游民
帖 子:139
专家分:69
注 册:2006-10-26
收藏
得分:0 
你用的是do...while..先执行再判断,你把它改成while...do先判断再执行,会少一次
2009-08-17 08:53
theperfact
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2009-8-8
收藏
得分:0 
改了 ,
还是不行 、
那个每执行第二次循环都要吧 scanf("%d",a)给忽略掉 直接给个A= ,就是说还没给字符就自动执行了一次。
那是什么原因啊?
2009-08-19 16:04
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:17 
看完你的程序,假如输入 dh回车  这里算输入了三个字符,回车也算一个,会赋给下次循环的a='\n'
所以你要再输入语句完后多加一条scanf("%c");的语句。

下面就多加一条语句就可以了。
#include "conio.h"
char max(char  a,char b)
{  int t;
    if(a<b)
   {t=a; a=b;  b=t; }
   return(a);
}
main()
{  
        char (*p)(char a,char b);
 
  char a,b,i,c;printf("fr\n");
  p=max;
  do{
  printf("input two number:\n");
  scanf("%c",&a);printf("a=%c\n",a);
  scanf("%c",&b);printf("b=%c\n",b);
  scanf("%c");                       /*  多加的  */
  c=(*p)(a,b);
  printf("max=%c\n",c);
  printf("wan\n");
  }while(a!=97);
  getch();
}

努力—前进—变老—退休—入土
2009-08-19 17:56
theperfact
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2009-8-8
收藏
得分:0 
恩,看显示应该是那么回事。
 但是你该的那个还是运行不了,提示(产生一个访问违例)不知道又是那个未知的错误。。
2009-08-19 21:39
soler
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:181
专家分:1077
注 册:2005-7-16
收藏
得分:0 
  scanf("%c",&a);printf("a=%c\n",a);
  getchar();
  scanf("%c",&b);printf("b=%c\n",b);
  getchar();
在每个scanf语句后面加个getchar清除回车就可以了。
2009-08-19 21:55
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
不是吧,又碰到运行不了的,谁看到贴试着复制我4楼上的程序运行试试,
能试通过的回个贴,试不通过的不要回了,受不了打击了。
试过的请他喝酒。

努力—前进—变老—退休—入土
2009-08-19 22:13
soler
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:181
专家分:1077
注 册:2005-7-16
收藏
得分:3 
以下是引用UserYuH在2009-8-19 22:13的发言:不是吧,又碰到运行不了的,谁看到贴试着复制我4楼上的程序运行试试,能试通过的回个贴,试不通过的不要回了,受不了打击了。试过的请他喝酒。
^_^,帮你试了一下,win-tc下正常。codeblocks下崩溃。vc++没装,哈哈。
2009-08-19 22:22
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
这么简单的代码也崩溃?又没至命错误。
兄弟,请你喝酒。

努力—前进—变老—退休—入土
2009-08-19 22:27
soler
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:181
专家分:1077
注 册:2005-7-16
收藏
得分:0 
提示错误:Program received signal SIGSEGV, Segmentation fault.

去看看这个帖子。
https://bbs.bccn.net/thread-202610-1-1.html

[ 本帖最后由 soler 于 2009-8-19 22:41 编辑 ]
2009-08-19 22:27
快速回复:看看这个循环怎么自动多执行一次
数据加载中...
 
   



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

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