打印

又是C语言的问题,COMPUTER00过来看看么?上次给我解答得很明白.

[复制链接]
1728|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
erkin|  楼主 | 2007-9-1 11:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <stdio.h>

main()
{
    char ch,nch;    /* */
    int count;    /* */
    int k;        /* */

    printf("Please input a string with a # in the end.\n");
    scanf("%c",&ch);    /* */
    while(ch != '#')    /* */
    {
        if(ch >= '0' && ch <= '9')
        {
            /* */
            count = ch-'0'+1;    /* */
            scanf("%c",&nch);    /*此处输入a */
            for(k=0;k<count;k++)    /*若我输入ch为4 */
                printf("%c",nch);/*此处应该输出为aaaaa,可是输出的却是a,而且是向下跳了'c'行后输出a,为什么?*/
        }
        else
            printf("%c",ch);    /* */
        printf(" ");            /* */
        scanf("%c",&ch);        /* */
    }
//    printf("#\n");                /* */
}


#include <stdio.h>
main()
{
    int a=5,b,c,i=10;
    b=a++;/*a=6,b=5*/
    c=++b;/*c=6,b=6*/

    printf("a = %d, b = %d, c = %d\n",a,b,c);/*a=6,b=6,c=6*/
    printf("i,i++,i++ = %d,%d,%d\n",i,i++,i++);
    /*10,10,11此处输出为10,10,10,最后的10为何?VC++6.0*/
    /*12,11,10此处输出为12,11,10,为何?TC2.0*/
    printf("%d\n",++i);/*13*/
    printf("%d\n",--i);/*12*/
    printf("%d\n",i++);/*12*/
    printf("%d\n",i--);/*13*/
    printf("%d\n",i);/*12*/
    printf("%d\n",-i++);/*-12*/
    printf("%d\n",i);/*13*/
    printf("%d\n",-i--);/*-13*/
    getchar();
}

相关帖子

沙发
computer00| | 2007-9-19 15:17 | 只看该作者

似乎是printf和scanf混用的原因...

使用特权

评论回复
板凳
guoqi| | 2007-9-19 17:26 | 只看该作者

re

printf("Please input a string with a # in the end.\n");
    scanf("%c",&ch);    /* */
    fflush(stdin);
    while(ch != '#')    /* */

中间加上fflush(stdin)清空缓冲区。
不然,你在scanf时输入的“回车”就带到下一个scanf中。
即scanf("%c",&nch);    /*此处输入a */
            for(k=0;k<count;k++)    /*若我输入ch为4 */

nch为“回车”然后你就打了count个回车。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

147

帖子

0

粉丝