yuzhitai 发表于 2022-8-1 10:33:10

这段代码错在哪?

#include<stdio.h>

int main(void){
        for(int i=1;i<=4;i++){
                for(int j=1;i<=4;j++){
                        for(int k=1;i<=4;k++){
                                if(i!=j&&i!=k&&j!=k){
                                                printf("%d%d%d\n",i,j,k);
                                }
                                //TODO
                        }
                        //TODO
                }
                //TODO
        }
        return 0;
}

wp231957 发表于 2022-8-1 10:41:11

都不说你的代码想干嘛

dark_sorrow 发表于 2022-8-1 10:42:24

你写的都是i<4

tommyyu 发表于 2022-8-1 11:01:17

判断条件都是i<=4

额外减小 发表于 2022-8-1 11:52:15

循环条件写成i=4,导致第3个for会形成死循环,因为i=1总是满足

jhq999 发表于 2022-8-1 12:42:26

一看就是复制完了,没改完整
1到4 取3个数排列

顶级太阳 发表于 2022-8-2 10:42:38

1、你没有写注释。没有人知道你想要干啥。
2、你这段代码里没有定义i,j,k的类型。程序不会编译成功,计算机不知道你要规定的数字什么类型。

清风岁月 发表于 2022-8-2 10:57:23

兄弟,你的代码没有注释,也没有程序说明。谁知道你要干嘛呢?

ExiaGN001 发表于 2022-8-13 16:53:52

PS:不说明意图的代码 一般会使 想帮助您的网友 无法判断代码是“语法错误”或是“预期之外的结果”。
以下是试图更改错误的代码.

#include<stdio.h>

int main(){
      for(int i=1;i<=4;i++){
                for(int j=1;j<=4;j++){
                        for(int k=1;k<=4;k++){
                              if(i!=j&&i!=k&&j!=k){
                                                printf("%d%d%d\n",i,j,k);
                              }
                              //TODO
                        }
                        //TODO
                }
                //TODO
      }
      return 0;
}

ExiaGN001 发表于 2022-8-13 16:55:10

顶级太阳 发表于 2022-8-2 10:42
1、你没有写注释。没有人知道你想要干啥。
2、你这段代码里没有定义i,j,k的类型。程序不会编译成功,计算 ...

热知识:新标准中C的for循环语法支持在第一部分写入变量的声明,其作用域是这个循环内部。

顶级太阳 发表于 2022-8-14 07:57:59

ExiaGN001 发表于 2022-8-13 16:55
热知识:新标准中C的for循环语法支持在第一部分写入变量的声明,其作用域是这个循环内部。

那么我理解你这段代码是一个数独填写程序,一行里不出现相同的数字的话,打印出来。是不是这样?

ExiaGN001 发表于 2022-8-14 10:22:12

顶级太阳 发表于 2022-8-14 07:57
那么我理解你这段代码是一个数独填写程序,一行里不出现相同的数字的话,打印出来。是不是这样?

(我不是楼主
我这代码是枚举A(4,3)的所有可能性
楼主的意图不明
页: [1]
查看完整版本: 这段代码错在哪?