求C语言高手帮我看一个简单的问题!

#include<stdlib.h>
#include<stdio.h>
int main()
{int d,i=1,r=10;
int j;
int z;
int items[6]={32,11,21,52,43,13};
for(d=1;d<=i;d++)
d*=r;
printf("%-4d",d);
for(j=0;j<6;j++)
{
z=items[j]/d%r;
printf("%d",z);
}
}
为什么我的d不是10而是11.

这个就是for循环的运行机制造成的
for中
先d=1
接着判断d<=i成立,因为i=1,所以进入循环体
运行d*=r,这里d变成10
接着运行d++,d变成11
接着再判断d<=i不成立,所以退出for循环,那么d最终结果是11了?
明白吗?
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-24
因为执行d*=r后,还得在循环中执行d++,然后才能结束循环
第2个回答  2013-10-24
因为执行d*=r后是10,但是还要执行d++变成11,然后进入判断d<=i,退出循环
第3个回答  2013-10-24
你的D在for循环完成一次时已经自增1了,所以是11!
第4个回答  2013-10-24
按你的程序先执行的是d*=r,然后d++.你第一个for循环就执行一次,还要for循环干啥啊

求C语言高手帮我看一个简单的问题!
这个就是for循环的运行机制造成的 for中 先d=1 接着判断d<=i成立,因为i=1,所以进入循环体 运行d*=r,这里d变成10 接着运行d++,d变成11 接着再判断d<=i不成立,所以退出for循环,那么d最终结果是11了?明白吗?

C语言高手 请告诉我几道简单的题! 我想搞明白 谢谢
第一个题,t是一个数组,pt是一个指针数组,做完循环后,指针数组就指向了t这个数组了。即pt和t应该是一个内容,只不过t是const的。*(pt+1)就是t[1],*(*(pt+l)+2)就是t[1][2]了。第二个题,sum没有初始化,所以答案就选c了。记住一点哦,永远不要使用未初始化的变量!第三个题,...

c语言简单程序题把我搞糊涂了 求大佬解疑
第一张图片:根据优先级,先算++,但由于加加在后面,所以返回加加前的值,也就是7。再算等号,赋值给sum,此时sum就是7。然后轮到逗号,逗号之后是sum自加,得8。然后再到下一个num自加,但跟sum已经没有关系了。所以答案是8。第二张图片:由于括号的原因,等号优先级低,所以先算括号里的值。

C语言大神帮看这个问题该如何解决?
设置一个变量作为标记,可以是bool类型,也可以是int类型。在这里使用bool类型,初始bool变量为false,输出第一个后,把该标记设置为true就行。学会了,就可以在这个基础上再进行演变。要使用bool类型,必须支持ANSI C99标准。代码的后面是修改过的,前面没修改。输出结果那里作了修改 这是输入输出结果 下...

C语言高手 请告诉我几道简单的题! 我想搞明白 谢谢
1 . 首先我们定义的是一个指针数组,pt[3] 它和数组类似,数组名表示的是第一个字符,而指针名则表示第一个指针,所以pt应该是pt[0],而pt[0]对应的是t[0][]在 *(*(pt+l)+2) 中 先看pt+l 对于数组来说,每一行的内存是连续分配的, 所以pt+l就是pt当前这一行的下一行,即t[1][]...

我是c语言小白,问问大神帮我看看编写的简单程序这哪里出错了?_百度...
#include<stdio.h> 输入代码时忽视输入法隐藏的错误 表面上看都是一样的代码,但是第二行就有错误,是全角和半角的不同,再看:正确编译运行 所以你的代码没有任何问题,但是要注意代码输入的方法。以前回答了很多,有时间可以看看我最近回答c语言问题:网页链接 网页链接 网页链接 网页链接等等。

C语言问题,大家帮个忙谢谢
如果输入的是 0,则是 1 位数,正序、逆序都为 0。如果不是0,可以根据该数是几位数进行循环输出。这里提供了一种扩展性较强的算法,可以参考。代码中,k = 1000 表示当该数是 4 位数,然后通过循环来缩减 k 的值,从而从高到低输出每一位的数字(正序)。逆序的算法相对正序简单点,先通过 ...

简单C语言问题,求解析
结果为D.无定值,首先c作为fun函数的输入参数,fun函数会将c复制一份进行fun函数内部的操作,fun函数内部c=2*3,但是fun函数运行结束后的fun函数内部的c就被清除掉了,而现在main函数中的c还是你初始化时的c,因此是没有定值的。如果写成fun(2,3,&c)的话,答案就是C,因为此时你给c加了引用...

简单的c语言问题
fun:如果X大于2 X除以2 打印X的值 main:fun(6)大于2 6\/2=3 fun(3)大于2 3\/2=1 然后一次向上输出 1 3 6 你这个函数应该少了个返回语句吧 ,,,

C语言问题简单的很,菜鸟送分,在线等
不就是输入一个正整数,然后反序输出么,关键部分无非就是 while(k!=0){ m=k%10;t=t*10+m;k\/=10;} 10可以直接取一个数的个位数,\/10则相当于将个位数去掉,把原来的十位数变成现在的个位数,然后就可以用%10取个位数(即原来的十位数),以此类推,可以取完该数的各位数....

相似回答