| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1281 人关注过本帖
标题:输出9*9口诀遇到的问题,求讲解
取消只看楼主 加入收藏
天外
Rank: 2
等 级:论坛游民
帖 子:29
专家分:16
注 册:2011-6-10
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
输出9*9口诀遇到的问题,求讲解
注释处问题
程序代码:
#include<stdio.h>
int main()
{
    int a;
    int num;
    do{
        printf("请输入一个1—9的整数:");
        num=scanf("%d",&a);            //有个疑问:输入字符时是此处的scanf接受还是下面的getchar接收?
        while(getchar()!='\n')        //此处while与下面scanf都可解决输入不是数字问题。
            continue;
        //scanf("%*[^\n]%*c");
    }while(num!=1||a<1||a>9);

 
        for(int i=1;i<=a;i++)
        {
          for(int j=1;j<=i;j++)
           printf("%2d*%d=%2d",j,i,j*i);
          printf("\n");
        }

 
    return 0;
}


[ 本帖最后由 天外 于 2013-4-12 08:17 编辑 ]
搜索更多相关主题的帖子: 讲解 疑问 
2013-04-11 17:59
天外
Rank: 2
等 级:论坛游民
帖 子:29
专家分:16
注 册:2011-6-10
收藏
得分:0 
以下是引用邓士林在2013-4-11 18:53:05的发言:

你如果两个都存在的话,那么程序的运行会一步步进行,即你输入一个字符,字符传递给getchar();即第一个获取函数,但是还会运行scanf函数的,接受第二个字符,scanf为格式输入函数,"%*c%*[^\n]"是输入格式。文中的语句还缺少一个接收变量,完整语句应该是:char a;scanf("%*c%*[^\n]",&a);程序执行到此时,键盘输入 %*(任意字符)*[^\n]  后按回车,则程序中变量a就存储了你输入的那个“任意字符”,

好像我标错了,是第一个scanf和getchar哪个接受的问题?
我又改了改...
2013-04-12 08:33
天外
Rank: 2
等 级:论坛游民
帖 子:29
专家分:16
注 册:2011-6-10
收藏
得分:0 
回复 10楼 邓士林
还是没有解决getchar和scanf接受的问题啊...
2013-04-15 08:03
天外
Rank: 2
等 级:论坛游民
帖 子:29
专家分:16
注 册:2011-6-10
收藏
得分:0 
回复 14楼 tianlangke
没有负号的默认右对齐,有负号的左对齐;
printf中%2d中的2代表应该输出宽度为2的字段,如果输出整数为3位,会自动扩展为3位输出,如果为1位则会右对齐左边有个空格
2013-04-18 16:05
快速回复:输出9*9口诀遇到的问题,求讲解
数据加载中...
 
   



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

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