| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 431 人关注过本帖
标题:麻烦帮忙找错误
只看楼主 加入收藏
月清晖
Rank: 2
等 级:论坛游民
帖 子:16
专家分:43
注 册:2011-3-5
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:5 
麻烦帮忙找错误
这个小错误我就是解决不了,麻烦大家了。
--------------------------------------
#include <stdio.h>
void main ()
{
  char a,b,t;
   printf ("Please input a's value:\n");scanf("%c ",&a);
   printf ("a is %c \n",a);//此行用于调试
   printf ("Please input b's value:\n");scanf("%c ",&b);
   printf ("b is %c\n",b);//此行用于调试
  t = a;a = b;b = t;
  printf ("a is %c \n",a);
  printf ("b is %c \n",b);
getch();
}

------------------------------------------
意思很明了,就是交换a、b的值,但我得不到满意的结果
输入a的值时需要输入2个
输入b的值时却是直接跳过了,不能对b赋值了,这是为什么?
而如果把两行并做一行写,却是可以的,我就纳闷了,怎么回事呢?

求解答!

[ 本帖最后由 月清晖 于 2011-3-10 18:27 编辑 ]
2011-03-10 17:55
新手写程序
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:62
专家分:120
注 册:2011-3-5
收藏
得分:1 
r = a; a = b; b = r;
%c后面有空格要注意输入
2011-03-10 17:59
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:2 
#include <stdio.h>
void main ()
{
  char a,b,t;
   printf ("Please input a's value:\n");scanf("%c ",&a);
  getchar();
  printf ("a is %c \n",a);//此行用于调试
  printf ("Please input b's value:\n");scanf("%c ",&b);
  getchar();
  printf ("b is %c\n",b);//此行用于调试
  t = a;a = b;b = t;
  printf ("a is %c \n",a);
  printf ("b is %c \n",b);
getch();
}

收到的鲜花
  • 月清晖2011-03-11 08:31 送鲜花  3朵   附言:受教了。

   唯实惟新 至诚致志
2011-03-10 18:37
ebao
Rank: 2
来 自:杭州
等 级:论坛游民
帖 子:33
专家分:66
注 册:2011-3-9
收藏
得分:0 
#include <conio.h>
vc6.0运行可以的额
2011-03-10 18:47
默默学习
Rank: 4
等 级:业余侠客
帖 子:134
专家分:200
注 册:2010-6-22
收藏
得分:5 
回复 楼主 月清晖
楼主你好,这一题。我认为,你有两个错误。
#include <stdio.h>
void main ()
{
  char a,b,t;//你如果是比较两个数的话,最好定义的类型是整型,而不要用字符型的.
   printf ("Please input a's value:\n");scanf("%c",&a);//这一句scanf里面%c 不能有空格,这也就是你为什么要输两次值
   fflush(stdin);//这一句是为了 清除输入缓冲区,否则程序执行不会给你第二次机会输入b值.
   printf ("Please input b's value:\n");scanf("%c",&b);
   fflush(stdin);
  t = a;a = b;b = t;
  printf ("a is %c \n",a);
  printf ("b is %c \n",b);
  getch();
}
代码已给出,希望对你有帮助,如有说错,楼下请指出批评指教.谢谢.


[ 本帖最后由 默默学习 于 2011-3-10 19:19 编辑 ]
收到的鲜花
  • 月清晖2011-03-11 08:32 送鲜花  3朵   附言:受教了。
2011-03-10 19:16
gukai1991
Rank: 2
等 级:论坛游民
帖 子:19
专家分:51
注 册:2011-2-19
收藏
得分:2 
在scanf("%c ",&b);前面加上  fflush(stdin); 清空输入缓冲区
 printf ("Please input b's value:\n"); fflush(stdin);scanf("%c",&b);
这是个常见问题,具体想了解就搜fflush
收到的鲜花
  • 月清晖2011-03-11 08:32 送鲜花  1朵   附言:谢谢。
2011-03-10 19:28
快速回复:麻烦帮忙找错误
数据加载中...
 
   



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

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