| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2114 人关注过本帖
标题:代码试题,求解?
只看楼主 加入收藏
peng880610
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:128
专家分:123
注 册:2017-3-29
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
代码试题,求解?
教材上给了下列代码,要我写出输出结果,有大神能帮忙写下完整代码么?实在有点迷。。。
void main()
{
int i,j;
 int a[4]={1,2,3,4};
for(i=0;i<4;i++)

for(j=0;j<i;j++)
a[i]=a[j]-a[i];

for(i=0;i<4;i++)
printf("%d",a[i]);
}
2017-04-26 00:28
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
上机跑一遍

DO IT YOURSELF !
2017-04-26 05:19
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
脡脧禄煤脜脺脪禄卤茅

DO IT YOURSELF !
2017-04-26 08:09
peng880610
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:128
专家分:123
注 册:2017-3-29
收藏
得分:0 
回复 3楼 wp231957
代码运行过了,但完全不明白输出怎么来的?
2017-04-26 11:24
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:4 
程序代码:
#include <stdio.h>
int main()
{
    
    int i,j;
    int a[4]={1,2,3,4};
  
    for(i = 0; i < 4; i++)
    {
       for(j = 0; j < i; j++)
       {
           printf("a[%d]=a[%d]-a[%d]  =%d\n", i, j, i, a[i]=a[j]-a[i]);
       }
    }
  
    for(i=0;i<4;i++)
     printf("a[%d]=%d\n", i, a[i]);

    return 0;
}
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2017-4-26 13:33编辑过]


早知做人那么辛苦!  当初不应该下凡
2017-04-26 13:32
潇湘夜雨001
Rank: 2
等 级:论坛游民
帖 子:14
专家分:28
注 册:2017-4-22
收藏
得分:4 
回复 楼主 peng880610
5楼调试的不错
2017-04-26 15:14
leodjh
Rank: 1
等 级:新手上路
帖 子:15
专家分:7
注 册:2016-8-13
收藏
得分:4 
2017-04-26 16:13
b1592187525
Rank: 1
等 级:新手上路
帖 子:86
专家分:4
注 册:2017-2-15
收藏
得分:4 
编译运行结果如5楼的图所示:先看代码中的双层for循环。
当外循环i=0时:内循环j<0不满足循环条件没有输出。
当外循环i=1是:内循环j=0满足循环条件j<1。将i=1,j=0代入输出语句中输出图中的第一行。
当外循环i=2时:内循环j=0,j=1满足循环条件j<2.将i=2,j=0与i=2,j=1分别代入输出语句输出图中的第二行与第三行。
图中的四,五,六行以此类推。
至此双层for循环执行完毕。接下来执行最后一个for循环。
当最后一个for循环i=0时不满足双层for循环条件。在双层for循环中没有输出。因此输出数组第一个下标的值为1。输出第七行。
当最后一个for循环i=1时满足双层for循环条件。在双层for循环中输出-1。输出第八行。
当最后一个for循环i=2是满足双层for循环条件。在双层for循环中分别输出-2和1。取后面一个值1.输出第九行。
第十行以此类推。
就得到图中的输出内容。
2017-04-26 17:37
peng880610
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:128
专家分:123
注 册:2017-3-29
收藏
得分:0 
回复 8楼 b1592187525
非常感谢你的耐心指导。你这一说,我差不多就明白了。不过还有一点想请教下你:
双循环,当i=2,a[2]=a[0]-a[2]=1-3=-2,a[2]=a[1]-a[2]=2-3=-1;
        当i=3, a[3]=a[0]-a[3]=1-4=-3,a[3]=a[1]-a[3]=2-4=-2,a[3]=a[2]-a[3]=3-4=-1;
  为什么和输出结果不一样呢?
2017-04-26 21:54
b1592187525
Rank: 1
等 级:新手上路
帖 子:86
专家分:4
注 册:2017-2-15
收藏
得分:0 
注意你这里用到的a[1],a[2],a[3]。经过双层for循环后它们有的值已经改变。不再是数组初始化的值。
当i=2时,a[2]=a[0]-a[2]这里等号右边的a[0]与a[2]依然是用数组初始化的值。因为循环尚未改变它们的值。所以为1-3=-2。
接下来a[2]=a[1]-a[2]这里等号右边的a[1]与a[2]已不再用数组初始化的值。因为循环改变了它们的值。此时a[1]=-1,a[2]=-2。所以为-1-(-2)=1。
当i=3时同理。
2017-04-26 23:29
快速回复:代码试题,求解?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017489 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved