2 isohpiemarceau iSohpiemarceau 于 2017.09.13 23:05 提问

c语言套嵌循环问题,怎么也想不通问题所在

大家好!本人纯菜鸟一枚。刚开始自学c语言。
有个联系:生成一个乘法表,行列数相等。如4行4列,则行列均为1~4。要求每个单元格数值为行列的乘积。
我编写的程序如下:
#include
int main(void)
{
int count=0;
int i=1;
int j=1;
int product=0;

printf("\nEnter the numbers of row and column: ");
scanf("%d",&count);

for(;i<=count; i++)
{
    while(j<=count)
    {
        product=i*j++;
        printf("%d        ", product);
    }
    printf("\n");
}
return 0;

}

但运行之后,却只显示一行。怎么也想不通程序的逻辑错在哪里。求指教。
图片说明
(因为用的vc++,不能用%5d之类的来确保数字对齐,所以也就不管对齐的问题了)
非常感谢

2个回答

caozhy
caozhy   Ds   Rxr 2017.09.14 08:36
已采纳

for(;i<=count; i++)
{
j=1; //这里要重置下
...
}

cocos_yang
cocos_yang   2017.09.14 09:26

因为你的j在第一次内层循环中已经加到j=5了,以后for循环无论怎么循环也进入不了while循环了,while(j <= count)这个条件不满足。

cocos_yang
cocos_yang 回复iSohpiemarceau: 这个变量的生命周期是main函数结束,在for循环里面当然不会消失啊;
10 个月之前 回复
iSohpiemarceau
iSohpiemarceau 回复iSohpiemarceau: 哦,我想通了。因为变量只取当前值。此时j变量内存储的值已经是5了,不会消失,也不会被覆盖。对么?
10 个月之前 回复
iSohpiemarceau
iSohpiemarceau 但我还是有点没理解。我理解的套嵌循环不该是这样吗:外层为1时,内层从头到尾循环一次,外层到2时,内层再从头到尾循环一次……内层循环完了,下一次为什么就不循环了呢?这个理解问题在那里呢?
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
对网文“美国人至今也想不通”有感
  乱世出英雄,不过我对这种战争的事情不感冒。我只知道那些死了的家人没人照顾,那些逃兵却是今天一个一个高高在上的坐着赏受,甚至剥削人民。  我们能战胜说成是一个民族觉醒的力量那只是那些军官们自谦,知道上下一心,其力断金,鼓动人民勇敢抗敌搞出的口号而已,今天再叫这个就显得有点不伦不类了。  他们的军事政治天份带来了新中国,我们确实也同时为之感到骄傲和自豪。但是,千万不要只知道口里面叫“中国人
c for循环嵌套switch的用法
在c中,循环的实现可以借助for。在for中嵌套一个switch,这种用法是俺最近学会的。 ///////////////////////////////////////////////////////////////////////////////////////// // // // // //test.c       2014/1/28 ////////////////////
C语言递归嵌套
嵌套调用,函数不能无限层的进行嵌套调用 函数可以嵌套调用多少层,是由程序运行时一个名为栈的数据结构决定的 一般情况下,Windows上程序默认栈大小为8KB,每一次函数调用至少占用8个字节,粗略计算,函数调用只能嵌套大约1000层如果,嵌套调用的函数中,包含许多变量和参数,实际值要远远小于这个数目 单纯的手动书写代码,写出1000层嵌套调用基本是不可能的 但是,通过递归的方法,可以轻松实现,
结构体嵌套指针应注意的问题
在c语言中内存的开辟和回收是一个很重要的问题,但是如果在编程中使用到结构体类型就显得更为重要了,但是如果结构体中有嵌套了指针就变得更加更加的重要了,看起来这是一个很小的点,但是这也是一个很容易被忽略的点,下面就以案例说话struct student { char *name; int age; }stu;第一没有开辟空间int main(void) { strcpy(stu.name,"C语言");
C语言循环的嵌套
注:参考网络资源拟制,如雷同请见谅 循环的嵌套: 一个循环体语句中又包含另一个循环语句,称为循环嵌套。 嵌套注意事项: 1.使用循环嵌套时,内层循环和外层循环的循环控制变量不能相同。 2.循环嵌套结构的书写,最好采用“右缩进”格式,以体现循环层次的关系。 3.尽量避免太多和太深的循环嵌套结构 用途: 循环嵌套可以帮助我们解决很多问题,在C语言中经常被用于按行列方式输出数据,例如:
常见oj错误提示信息解析
(1)runtime error (运行时错误)程序运行到一半,程序就崩溃了 除以零 数组越界:int a[4]; a[99999]=9; 指针越界:int * p; p=(int )malloc(5 sizeof(int)); *(p+1000000)=10; 使用已经释放的空间:int * p; p=(int )malloc(5 sizeof(int));free(p); *p=10;
循环里使用嵌套集合的陷阱(小白会犯的错)
-
织梦的一个列表嵌套循环读取
以后持续更新,这个是织梦的循环嵌套,主要是做企业站的产品列表循环读取
51单片机c嵌汇编教程
<br />原帖:http://bbs.cepark.com/thread-13010-1-1.html<br />http://bbs.cepark.com/thread-13028-1-1.html(原帖有附件)<br /> <br /> <br />第一步;按照建立普通c51程序的方法,建立c51工程文件。<br />           建立两个*.c文件(c51shi.c和asm.c),加入工程。c51shi.c为主程序,asm.c为汇编函数。<br /><br />第二步:在 Project 窗
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"); }