首页
社区
课程
招聘
[旧帖] [讨论]两种代码编译都通过了,为什么第一个执行的结果是错误的呢? 0.00雪花
发表于: 2009-8-8 13:53 3799

[旧帖] [讨论]两种代码编译都通过了,为什么第一个执行的结果是错误的呢? 0.00雪花

2009-8-8 13:53
3799
想要依次输出9,09,009,2009
#include<stdio.h>
#include<stdlib.h>
void main()
{
        int i,j,a[4]={2,0,0,9};
    for(i=0;i<=3;i++);
    {
                for(j=3-i;j<=3;j++)
            printf("%d",a[j]);
        printf("\n");
    }
  system("pause");
}
/*#include <stdio.h>
#include <stdlib.h>
void main()
{
        int i,j,a[4]={2,0,0,9};
        for(i=0;i<=3;i++)
        {
                for(j=3-i;j<=3;j++)
                        printf("%d",a[j]);
                printf("\n");
        }
        system("pause");
}*/
两种代码编译都通过了,为什么第一个执行的结果是错误的呢?两种代码有什么区别吗?会不会是和机器的配置有关?代码是直接粘贴上来的,应该是对齐的

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 517
活跃值: (35)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
for(i=0;i<=3;i++);

2009-8-8 14:54
0
雪    币: 277
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
这样不行么
2009-8-8 16:23
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
for(i=0;i<=3;i++);
2樓看出來了

這樣這句的作用跟想要執行的功能有差異,
這句自己執行完 i = 3
然後再執行這個迴圈
{
    for(j=3-i;j<=3;j++)
            printf("%d",a[j]);
        printf("\n");
}

而不是你想要的

for(XX;XX;XX;)
{
       for(XX;XX;XX;)
       {
                .....
       }
}
2009-8-8 17:32
0
雪    币: 277
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
谢谢各位啦
多了个分号竟然没发现
2009-8-8 18:07
0
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我特讨厌这种编程语法

多个分号有时候自己写的东西检查半天看不出个所以然
2009-8-8 18:10
0
游客
登录 | 注册 方可回帖
返回
//