2 xyzzyj xyzzyj 于 2016.05.10 02:59 提问

C语言 for嵌套如何改写为while嵌套

虽然查找到的大部分回答都是“循环结构for能和while进行互换”,但是感觉有个地方的确无法互换。

下面是用for写的,能够输出4组数字:
1 1
1 2
2 1
2 2

 #include <stdio.h>
void main()
{
    int a,b;
    for(a=1;a<=2;a++)
        for(b=1;b<=2;b++)
            printf("%d %d\n",a,b);
}

下面是用while写的:

#include <stdio.h>
void main()
{
    int a=1,b=1;
    while(a<=1)
    {
        a++;
        while(b<=1)
        {
            b++;
            printf("%d %d\n",a,b);
        }
    }
}

输出结果大不相同。
while结构中能否不添加其余变量等,使得输出结果和for输出一样?

4个回答

caozhy
caozhy   Ds   Rxr 2016.05.10 08:15
已采纳
 #include <stdio.h>
void main()
{
    int a,b;
        a=1
    while(a<=2)
        {
            b=1;
        while(b<=2)
                {
            printf("%d %d\n",a,b);
                    b++;
                }
            a++;
        }
}

参考我在 http://ask.csdn.net/questions/254265 的回答。
caozhy
caozhy 回复xyzzyj: 如果回答解决了你的问题,麻烦点下我回答右边的采纳,谢谢
大约 2 年之前 回复
xyzzyj
xyzzyj a=1后面有个;,其他的解答得很好,非常感谢
大约 2 年之前 回复
mazegong
mazegong   2016.05.10 10:05

#include
void main()
{
int a,b;
a=1
while(a<=2)
{
b=1;
while(b<=2)
{
printf("%d %d\n",a,b);
b++;
}
a++;
}
} 这个回答好点

agoni_xiaoen
agoni_xiaoen   2016.05.10 10:11

你没理解for的原理,括号里面三条语句,先是执行一二两条,之后执行for循环体,最后执行最后第三条语句。。。所以你是顺序有问题,导致结果不一样。。。

CSDNXIAOS
CSDNXIAOS   2016.05.10 03:12

这里的for嵌套,有三个,总觉得不能用,但后来想想 它是能运行的,因为C语言中的程序是顺序执行的,第一个被执行完成后,接着执行第二个,用相同的时间,所以没有问题
#include <reg52.H>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
//心形......
答案就在这里:单片机编程C语言 好多for嵌套
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
switch 中嵌套 while之妙用
今天看到一段代码,代码的风格与实用性无可圈之处,不过,仔细研究下,可以学到一些东西,加深了对switch的理解,代码如下void copy(char* dst, char* src, int len)...{    switch(len & 7) ...{    default:        while (len > 7) ...{            len -= 8;       
解决代码逻辑嵌套过多的技巧 do{} while(0);
在此过程,遇到以下情况时将放弃后续的操作,认为是操作失败:  1、如果 A 文件不存在;  2、如果B文件已经存在,并且询问用户是否覆盖时,用户回答“不”;  3、无法复制出 B 文件;  4、无法打开 B 文件;  5、无法写入 B 文件;  6、无法正常关闭 B 文件。  用伪代码写该段程序为 if( A 文件存在 )  {          执行 A 文件的相
C语言之while循环语句和do while循环语句、for循环语句、循环嵌套
语法; while(条件) { 循环体: } #include int main() { //while循环到100案例 int i = 0; //条件运算符:> >= < <= == != while(i<=100) { printf("数据读取到:%d\n",i); i++; } } do while 语法: do { 循环体; }whiler
c for循环嵌套switch的用法
在c中,循环的实现可以借助for。在for中嵌套一个switch,这种用法是俺最近学会的。 ///////////////////////////////////////////////////////////////////////////////////////// // // // // //test.c       2014/1/28 ////////////////////
keil软件中C语言嵌套汇编
原文地址:keil软件中C语言嵌套汇编作者:SUN_403 一、讲解背景 在单片机学习的过程中,掌握一点汇编语言是非常有必有的,作为低级语言汇编语言在单片机开发中有它不可取代的作用,比如每条指令可以精确的确定延时时间,便于理解非常适合硬件工程师学习。但是要提高单片机技能,必须掌握C 语言编程,因为C 语言有强大的模块化管理思想。我想在很多人学习的过程中即学了汇编语言,又学习了C 语言,那么一个问
《C语言及程序设计》实践参考——循环的嵌套流程图
返回:贺老师课程教学链接  项目要求循环的嵌套流程图(1)求s=1!+2!+……10!,即求1到10的阶乘和[参考解答]或者: (2)求s=1+2^2+3^3+4^4+5^5+6^6,要求n^n不能用求幂的运算直接计算(n^n表示n的n次方)[参考解答]
C语言初步-第31讲:循环控制结构及流程图(循环的嵌套流程图)
任务和流程图: *作者: Osseyda 完成日期:2017.9.16 *版本号:v2. 问题描述: (1)求s=1!+2!+……10!,即求1到10的阶乘和 (2)求s=1+2^2+3^3+4^4+5^5+6^6,要求n^n不能用求幂的运算直接计算(n^n表示n的n次方) 知识点总结: 1.嵌套循环的表达;2 .n!与n^n的表达 心得; 1.嵌套循环就像俄罗斯套娃,
continue 在 switch中使用 (switch嵌套在while循环中)
<br />如果你在switch中使用continue,continue生效是对于while循环 <br /> 如果你在switch中使用break,break生效是对于switch。 <br /> <br />#include <stdio.h><br /><br /> int main()<br /> {<br />     int i_index;<br /><br />     for (i_index = 0; i_index < 5; ++i_index) {<br />    
C语言简单实用的程序-if else 嵌套式的使用例子
C语言简单实用的程序-if else 嵌套式的使用例子--一个数的约数--计算用电账目 例子1 //使用嵌套式 if显示一个数的约数 #include #include int main() {  unsigned long num;  //要检查的数  unsigned long div;  //可能的约数  bool isPrime;       //素数的标志    p
for循环嵌套的两种用法
主要有两种类型的for循环嵌套,下面来介绍这两种类型循环嵌套的用法以及事例。 一:内外循环独立进行 #include void main() { int i,j; char a[5]="$$$$$"; for(i=0;i<5;i++) { for(j=0;j<5;j++) printf("%c",a[j]); printf("\n"); }