注册 登录
编程论坛 C++教室

这个scanf的bug是怎么回事儿?

judking 发布于 2010-04-11 21:18, 579 次点击
int main()    {
        scanf("%d %d", &m, &n);               // input
        getchar();
        if(m == 0 && n == 0)
            break;
        for(i = 1; i <= m; i ++)    {
            for(j = 1; j <= n; j ++)    {
                scanf("%d", &a[i][j]);              
            }
            getchar();
        }

        printf("\n");
        for(i = 1; i <= m; i ++)    {
            for(j = 1; j <= n; j ++)    {
                printf("%c", a[i][j]);
            }printf("\n");
        }
        system("pause");
        return 0;
}



这个简单的读入输出代码对于下列的前两组数据都没有问题,但对于最后一组数据却出现异常,哪位大牛帮忙看看~感激不尽~
4 回复
#2
judking2010-04-11 22:02
自己的问题~主题帖修改如下

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string.h>

int i, j, m, n;
int a[25][25];


int main()    {
        scanf("%d %d", &m, &n);               // input
        getchar();
        for(i = 1; i <= m; i ++)    {
            for(j = 1; j <= n; j ++)    {
                scanf("%d", &a[i][j]);              
            }
            getchar();
        }

        printf("\n");
        for(i = 1; i <= m; i ++)    {
            for(j = 1; j <= n; j ++)    {
                printf("%c", a[i][j]);
            }printf("\n");
        }
        system("pause");
        return 0;
}

8 8
.@##...#
#....#.#
#.#.##..
..#.###.
#.#...#.
..###.#.
...#.*..
.#...###


6 5
.*.#.
.#...
..##.
.....
.#...
....@


9 6
.#..#.
.#.*.#
.####.
..#...
..#...
..#...
..#...
#.@.##
.#..#.


抱歉~~~

#3
yyblackyy2010-04-11 23:42
printf("%c", a[i][j]); 这输出的是字符
printf("%d",a[i][j]);  这才是整数
#4
dog527306522010-04-12 21:04
帅哥,那你到底是想用C还是C++,你把stdio和iostream都写上去干嘛?
#5
judking2010-04-12 22:45
回复 4楼 dog52730652
我习惯都写上··混着用c和c++没问题吧?
1