c语言-这道简单的编程题里,为啥运行结果会是这个?

问题描述

这道简单的编程题里,为啥运行结果会是这个?


以上题,结果是怎么出来的呢??

老师说for的嵌套循环语句时一笔带过,之前重点讲了道for的例题,

但我发现,用这道例题的逻辑去思考嵌套循环语句,完全行不通嘛!im crazy!!求好心人解答...

解决方案

其实,我觉得你应该是不会看内外层的嵌套,一般都是从最内层开始看 ,

i j k

所以一上来就是000 001

之后k都循环完了,再往外就是j = 1 的情况,而这时候i = 0

所以结果是 010 011 以此类推

j的情况结束了,i = 1 情况就要开始了

而j k 还是要从0 开始算 ,所以是

1 0 0 1 0 1

注意此时变化的依然是最内层,所以 接下来就是

j = 1 的变化

1 1 0 1 1 1
,你要用debug仔细看一下就会了,即便是我在分析,如果不看的你的图说,也还是可能做错的,

总看看就不会出错了~~~希望对你有用

解决方案二:

这个讲得详细点。
http://www.360doc.com/content/12/0107/09/8486771_177824230.shtml

解决方案三:

这程序很正确啊,这就是循环嵌套。外侧循环每执行1次,内侧就执行2次。最外侧的1次,最内侧就是8次。你单步运行下就知道了。

解决方案四:

每个for循环都需要花括号

解决方案五:

For循环先执行最里面的,这里也就是k的那层,执行一次for循环,打印一次i,j,k第一次打印也就是000,第二次k+1, i,j都为0,所以为001 ,再次执行时,执行for循环的j,然后是k,所以,i,j,k分别为010,011……

解决方案六:

这不是很正常嘛。用for语句执行的逻辑去推导。

解决方案七:

爱动脑筋的人和我一起玩自动嵌套,或许理解和控制循环量更容易理解,
string 字符串 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int 量 = 字符串.Length, 跟 = 0, 定 = 3, 嵌套量 = 量 - 定;
int[] 无限嵌套 = Enumerable.Range(定, 嵌套量).ToArray();
do
{
foreach (int 元 in 无限嵌套)
{/*逐级运算*/
if (元 < 0)
{
if (跟 + 1 >= 嵌套量) break;/*数组最后元素小于0时*/
--无限嵌套[跟 + 1];
无限嵌套[跟] = 定 + 跟;
}
++跟;
}
if (无限嵌套[嵌套量 - 1] >= 0)
Console.WriteLine(string.Join(" ", 无限嵌套));
--无限嵌套[0];
跟 = 0;
} while (无限嵌套[嵌套量 - 1] >= 0);

        string 字符串 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 输出 = "";
        int 量 = 字符串.Length, 跟 = 量;
        int[] 无限嵌套 = Enumerable.Repeat(0, 量).ToArray();
        do
        {
            while (--跟 >= 0)/*逐级运算*/
                if (无限嵌套[跟] >= 量)
                {
                    if (跟 - 1 < 0) break;/*防止越界*/
                    ++无限嵌套[跟 - 1];
                    无限嵌套[跟] = 0;
                }
            if (无限嵌套[0] < 量)
                //Console.WriteLine(string.Join(" ", 无限嵌套));
                foreach (int aa in 无限嵌套)
                    输出 += 字符串[aa].ToString();
            Console.WriteLine(输出);
            ++无限嵌套[量 - 1];
            跟 = 量; 输出 = "";
        } while (无限嵌套[0] < 量);
        /*多年前的想法,今天终于实现了,自动嵌套循环的算法,从此不再局限于固定的嵌套循环,以后都可以使用动态的嵌套循环。2016年1月25日10:05*/

解决方案八:

sum=0 完全可以放在 for 语句之前,因为它是在 for 的初始化部分,也只执行一次。

时间: 2024-09-15 10:28:33

c语言-这道简单的编程题里,为啥运行结果会是这个?的相关文章

这道简单的编程题最终求的n是什么,字符的个数吗?还是循环的次数?求解答这道题的整体思路。

问题描述 这道简单的编程题最终求的n是什么,字符的个数吗?还是循环的次数?求解答这道题的整体思路. #include void main() { int n=0; printf("input a string:n"); while( getchar()!='n' ) { n++; } printf("%d",n); } 解决方案 楼主给出了部分程序,看来和一楼说的一样,就是统计除了回车外,你输入了多少个字符 解决方案二: 统计输入的字符的个数!遇到回车就跳出循环!打

基础-这道简单编程题里,为啥5050就是出不来呢?

问题描述 这道简单编程题里,为啥5050就是出不来呢? 解决方案 最后一行打印的是sum的地址 解决方案二: 最后的一行那个&去掉,那输出是地址 解决方案三: 那个&是取地址符,是在scanf()语句中扫描用户输入内容用的,关于printf()语句加上了会输出地址,而不是内容了 解决方案四: 你可以把100改为一个比较小的数,然后单步调试看一下.

两道相似的简单Java编程题,关于文件

问题描述 两道相似的简单Java编程题,关于文件 在A文件夹里有2000个文件,分别是A0.txt,A1.txt,A2.txt,--一直到A1999.txt, 一.我们从中随机选出200个文件复制到B文件夹中: 二.我们系统抽样选出200个文件复制到C文件夹中(比如选择A2.txt,A12.txt,A22.txt,依次加10到A1992.txt). 求大神帮忙!!! 解决方案 我的思路是这样的:首先对于可以用随机函数产生所选的文件之后就是对于随机到的每个文件分别进行复制 对于下面的系统抽样,我不

c语言-简单编程题:分数化小数,怎么用变量作为输出的小数位?

问题描述 简单编程题:分数化小数,怎么用变量作为输出的小数位? 题目:输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位.a,b<=10^6,c<=100. 输入包含多组数据,结束标记为a=b=c=0. 样例输入: 1 6 4 0 0 0 样例输出: Case 1:0.1667 我的代码如下,还没有完善,如果有其他不足也恳请指教!谢谢 #include int main() { int a,b,c,kase=0; double res; while(scanf("%d%d

语言 vc++-VC++ 简单编程题的问题

问题描述 VC++ 简单编程题的问题 #include #include int main() { char a[1000][100],b[1000][100]; int t,i,j,n,fa=0; printf("Please input test times: "); scanf("%d",&t); printf("Output:n"); for(i=0;i { printf("Please input game times

编程c语言-c语言编程题,请老师们帮帮我,谢谢

问题描述 c语言编程题,请老师们帮帮我,谢谢 已知一个长度为2015的整型数组,数组里的数据的大小为递增关系,请编写一个函数找到数组中值为2015的数,并返回该数在数组中的位置,未找到则返回-1. 解决方案 第一种方法:直接从头到尾遍历一次数组即可,时间复杂度为O(n) 第二种方法:二分查找法,时间复杂度为O(logn) 有思路了,写代码就比较简单了,就这 解决方案二: int position(int a[2015]) { int k = 2015; int low, high, mid; l

出现频率-一道C语言编程题,本人初学者,求大神解答

问题描述 一道C语言编程题,本人初学者,求大神解答 编写程序实现功能:数据文件story.txt是一篇英文小故事,请先统计其中26个字母的出现次数. 要求一:再根据用户要求,输出某个字母的出现次数,直到用户输入#为止. 要求二:请输出出现频率最高的三个字母和它们的出现次数. 解决方案 #include #include #include int main() { int alpha[26]={0}; //用于计数26个字母出现的次数 FILE *text; //FILE 指针 char ch;

c语言-两道C语言编程题:求教各位大神

问题描述 两道C语言编程题:求教各位大神 两元一瓶啤酒,两个啤酒瓶换一瓶啤酒,四个啤酒瓶盖换一瓶啤酒,输入的金额可以买几瓶. 输入一串字符串,写两个函数,第一个函数使输入的字符串全都后移一位,第二个函数将字符串中的字母大写换小写,小写换大写?. 拜托各位了 谢谢~ 解决方案 第一个问题描述不清,不知道是不是可以借啤酒瓶和瓶盖,我的程序按照不可以编写: #include <stdio.h>int foo(int money){ int c = money / 2; int c1 = 0; int

函数调用-C语言编程题,插入求和函数,排序函数。么有错误,但结果不对!

问题描述 C语言编程题,插入求和函数,排序函数.么有错误,但结果不对! 定义一个包括学号.姓名及三门课的成绩和总分的结构体,利用该结构体说明一个包含五个人的结构体数组.从键盘输入五个人的基本信息.计算总分,并根据总分排序输出一个成绩单! 解决方案 show us the code加个断点调试吧看看每次排序后的顺序是否如预期结果 解决方案二: 这个代码也没贴出来,怎么知道问题出在哪里 解决方案三: 复 6楼 newdos#include void shuru(void);void qiuhepai