2 maomingtangtangzhu maomingtangtangzhu 于 2014.12.17 22:01 提问

为什么我在一个c程序末尾加入一段代码后前面的代码输出内容没了?加代码 后 前 程序如下

代码有点长,我只想知道加代码后变化的原因
#include"stdio.h"
static int k = 0;
int h[120][5] = { 0 };
int t, g, n, m, i=5, j=1, c;
void output(int b[5])
{
int p;
for (p = 0; p <= 4; p++)
{
printf("%d ", b[p]);
h[4 * (j - 1) + 6 - i][p] = b[p];
}

k++;
printf("\n");

}

int main(void)
{
int a[5] = { 1, 2, 3, 4, 5 };

for (j = 1; j <= 30; j++)
{
    for (i = 5; i >= 2; i--)
    {
        switch (i)
        {
        case 5: t = a[4], a[4] = a[0], a[0] = t, g = a[3], a[3] = a[1], a[1] = g; output(a);; break;
        case 4: t = a[0], a[0] = a[3], a[3] = t, g = a[2], a[2] = a[1], a[1] = g; output(a); break;
        case 3: t = a[2], a[2] = a[0], a[0] = t; output(a); break;
        case 2: t = a[0], a[0] = a[1], a[1] = t; output(a); break;
        default: printf("wrong!!!!!!!\n");
            break;
        }
    }
}
printf("%d\n", k);
for (n = 0; n <= 118; n++)
{
    for (m = n + 1; m <= 119; m++)
    {
        if (h[n][0] == h[m][0] && h[n][1] == h[m][1] && h[n][2] == h[m][2] && h[n][3] == h[m][3] && h[n][4] == h[m][4])
        {
            printf("n=%d,m=%d\n", n, m);
            printf("%d,%d,%d,%d,%d\n", h[n][0], h[n][1], h[n][2], h[n][3], h[n][4]);
        }
    }
}

}

#include"stdio.h"
static int k = 0;
int h[120][5] = { 0 };
int t, g, n, m, i=5, j=1, c;
void output(int b[5])
{
int p;
for (p = 0; p <= 4; p++)
{
printf("%d ", b[p]);
h[4 * (j - 1) + 6 - i][p] = b[p];
}

k++;
printf("\n");

}

int main(void)
{
int a[5] = { 1, 2, 3, 4, 5 };

for (j = 1; j <= 30; j++)
{
    for (i = 5; i >= 2; i--)
    {
        switch (i)
        {
        case 5: t = a[4], a[4] = a[0], a[0] = t, g = a[3], a[3] = a[1], a[1] = g; output(a);; break;
        case 4: t = a[0], a[0] = a[3], a[3] = t, g = a[2], a[2] = a[1], a[1] = g; output(a); break;
        case 3: t = a[2], a[2] = a[0], a[0] = t; output(a); break;
        case 2: t = a[0], a[0] = a[1], a[1] = t; output(a); break;
        default: printf("wrong!!!!!!!\n");
            break;
        }
    }
}
printf("%d\n", k);

}

3个回答

caozhy
caozhy   Ds   Rxr 2014.12.18 00:41

如果你用的是Windows,在控制台窗口,点左上角的图标,菜单里面点属性。把缓冲区的大小设置大一些就可以了。


maomingtangtangzhu
maomingtangtangzhu 哦,谢谢啦,原来有这么多行,程序没达到想要的结果
3 年多之前 回复
u011767611
u011767611   2014.12.17 22:22
75 3 5 1 2 4
 76 5 3 1 2 4
 77 4 2 1 3 5
 78 3 1 2 4 5
 79 2 1 3 4 5
 80 1 2 3 4 5
 81 5 4 3 2 1
 82 2 3 4 5 1
 83 4 3 2 5 1
 84 3 4 2 5 1
 85 1 5 2 4 3
 86 4 2 5 1 3
 87 5 2 4 1 3
 88 2 5 4 1 3
 89 3 1 4 5 2
 90 5 4 1 3 2
 91 1 4 5 3 2
 92 4 1 5 3 2
 93 2 3 5 1 4
 94 1 5 3 2 4
 95 3 5 1 2 4
 96 5 3 1 2 4
 97 4 2 1 3 5
......
.....
.....
689 2,5,4,1,3
690 n=89,m=109
691 3,1,4,5,2
692 n=90,m=110
693 5,4,1,3,2
694 n=91,m=111
695 1,4,5,3,2
696 n=92,m=112
697 4,1,5,3,2
698 n=93,m=113
699 2,3,5,1,4
700 n=94,m=114
701 1,5,3,2,4
702 n=95,m=115
703 3,5,1,2,4
704 n=96,m=116
705 5,3,1,2,4
706 n=97,m=117
707 4,2,1,3,5
708 n=98,m=118
709 3,1,2,4,5
710 n=99,m=119
711 2,1,3,4,5
已经达到711行输出,前面哪几十行早就被刷下去啦!
建议你使用sleep()输出一行睡眠一会,你就见到你没加代码前的结果啦!
或者使用流从定向到一个文本中,查看文本就明白啦!
希望能帮到你!
maomingtangtangzhu
maomingtangtangzhu 谢谢,我是初学者,很多东西不了解,谢谢帮忙
3 年多之前 回复
zhouxich
zhouxich   2014.12.18 00:41

是命令行窗口的缓冲区太小了吧?你可以改一下命令行窗口的缓冲区大小,像我是把它改成1000行的,打开命令行窗口的属性改一下就好了,希望对你有用。

maomingtangtangzhu
maomingtangtangzhu 谢谢你们,我再试试
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
王爽汇编 第六章包含多个段的程序 作业
;第六章 包含多个段的程序 ;1,下面的程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,完成程序:
在python程序中,#后面的语句是表示啥意思
这句话以#开头,表示本来不在程序中运行。 这句话的用途是告诉机器寻找到该设备上的python解释器,操作系统使用它找到的解释器来运行文件中的程序代码。 通常情况下: linux:   #! /usr/bin/env python # encoding: utf-8 Windows: #!/usr/local/bin/python2.7 # encoding: ut
第六篇:C++语言源程序中每一行加一个反斜杠的意思
源代码如下: #define PTR_FREE(ptr)\ {\ if ((NULL) != (ptr))\ {\ free(ptr);\ ptr = NULL;\ }\ } 反斜杠是续行符,只能放在一行的末尾 每一行的反斜杠表示紧接着下一行,不间断 为什么要不间断呢? 因为:这是一个宏的定义,语法上只能占用一行,由于定义结构太长,分行书写,需要用"\"来指明分行书写宏定义
第四章.-10 Python从入门到实践
1.切片:选择你在本章编写的一个程序,在末尾添加几行代码,以完成如下任务。  打印消息“The first three items in the list are:”,再使用切片来打印列表的前三个 元素。  打印消息“Three items from the middle of the list are:”,再使用切片来打印列表中 间的三个元素。  打印消息“The last th
去掉C/C++程序代码中的注释
程序员面试宝典上面的题目有很多是很经典的问题,可供我们思考,而且会对我们面试有很大好处。 下面是第45页的一个题目:编写一个函数,实现把C/C++程序代码中的注释去掉,我开始看的时候总是看不懂,后来在网上看到一个网友详细的分析了其代码,但是我看了之后觉得有好多地方他分析的都不对,于是,我自己又花了半天的时间分析了一遍,觉得自己理解了,下面给出我的分析语句。如果还有不严谨的部分,请指教!
打印自身源代码的程序
无意当中看到了这样一个问题: 任意选定一个语言写一个打印自身源代码的程序,这个程序不允许读取或者写其他文件的数据,程序必须是完全独立的。 很有趣吧?我正在学习C语言,这个问题是我在查找其他资料时看到的,这激发了我的兴趣,我躺在床上想了很久,没有一点头绪,额,最后抱着认为不大可能实现的想法睡着了······ 回到正题,我在网上搜索了有关资料以后,知道了如何去写出这样的一个程序,原理
高级编程 python 第四章作业
4-2 动物 :想出至少三种有共同特征的动物,将这些动物的名称存储在一个列表中,再使用for 循环将每种动物的名称都打印出来。 修改这个程序,使其针对每种动物都打印一个句子,如“A dog would make a great pet”。 在程序末尾添加一行代码,指出这些动物的共同之处,如打印诸如“Any of these animals would make a great pet!”这样的句子...
汇编语言:编写code段中代码,将a段和b段中的数据依次相加,将结果放到c段
题目介绍 程序如下,编写code段中代码,将a段和b段中的数据依次相加,将结果放到c段。 代码展示 ;编写code代码,将a段b段中的数据依次相加,将结果存在c段中。 assume cs:code,ds:a,ds:b,ds:c a segment db 1,2,3,4,5,6,7,8 a ends b segment db 1,2,3,4,5,6,7,8 b ends
return命令--后面的程序不执行
C或C++语言中有一个return命令,该命令很容易忽略1项功能,即return为函数结束符,如果函数中运行到return命令后,除了返回值,该函数也将运行结束,后面如果有程序也将不再运行,不过也不用担心这一点,后面程序不运行的前提是要运行到return命令,因为有些if判断,是不运行对应分支的return命令的。
代码修改后运行结果同修改之前结果一样
虽然已经把查询语句cmdText中的表名改为“T_User”,但查看cmdText的真实值为“select * fromT_UserInfo where userID=@userID and password=@password”,说明,虽然表面上已经修改了表名,但实际上程序执行的时候还是对原来的T_UserInfo进行操作。