C语言简单题,有空请看一下

问题遇到的现象和发生背景

img

用代码块功能插入代码,请勿粘贴截图 #include

int a[100005];
int main(void)
{
int n,A,B,C,count=0;;
scanf("%d",&n);
for(int i=1;i<=n;i++)
a[i]=i;
for(int i=1;i<=n;i++)
{
A=a[i];
for(int j=1;j<=n;j++)
{
B=a[j];
if(B==A) continue;
for(int l=1;l<=n;l++)
{
C=a[l];
if(C==A||C==B) continue;
}
printf("A:%d B:%d C:%d\n",A,B,C);
count++;
}
}
printf("%d",count);
}

运行结果及报错内容

img


#include<stdio.h>
int a[100005];
int main(void)
{
    int n,A,B,C,count=0;;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        a[i]=i;
    for(int i=1;i<=n;i++)
    {
        A=a[i];
        for(int j=1;j<=n;j++)
        {
            B=a[j];
            if(B==A) continue;
            for(int l=1;l<=n;l++)
            {
                C=a[l];
                if(C==A||C==B) continue;
                break;
            }
            printf("A:%d B:%d C:%d\n",A,B,C);
            count++;
        }
    }
    printf("%d",count);
}

if(C==A||C==B) continue;后面少了一个break;

printf("A:%d B:%d C:%d\n",A,B,C); 这一句放在第3个for循环 {} 里面 试试

#include <stdio.h>
int a[100005];
int main(void)
{
    int n,A,B,C,count=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    
        a[i]=i;
        for(int i=1;i<=n;i++)
        {
            A=a[i];
            for(int j=1;j<=n;j++)
            {
                B=a[j];
                if(B==A) continue;
                for(int l=1;l<=n;l++)
                {
                    C=a[l];
                    if(C==A||C==B) continue;
                    printf("A:%d B:%d C:%d\n",A,B,C);
                    count++;
                }
                
            }
        }
        printf("%d",count);
    
    
}

把你最后的输出放到循环里面因为你输出的接口是循环判断完的,你放到外面判断C==A || C ==B就没有用了