C语言循环pta题集

img

img

img


输出样例应该为2 4
但是自己写的代码输出的是1 2 3 4
有没有大虾可以帮忙看看,刚学C语言

你的思路都是乱的呀。你的b都不是个数组,怎么能先单独用循环读入,后面又用在另一个循环判断里呢?c++的那个循环里的if判断中怎么能再c++呢?写代码之前先想清楚思路,明白了再往上写。没想明白就写代码,写的都是乱的。
正确代码:

#include <stdio.h>
int main(){
    int i,j,a,b;
    scanf("%d %d\n",&i,&j);
    for(a=0;a<j;a++){
        scanf("%d",&b);
        for(int c=b;c<=i;c++){
            if(c!=b){
                printf("%d\n",c);
                break;
            }
        }
    }
    return 0;
}

如有帮助,望采纳。

img


#include<stdio.h>

int main(){
    int n,k;
    int b[10000];
    scanf("%d %d",&n,&k);
    for(int i =0;i<k;i++){
        scanf("%d",&b[i]);
    }
    for(int i = 1;i<=n;i++){
        int flag = 1;
        for(int j = 0;j<k;j++){
            if(i==b[j]){
                flag = 0;
                break;
            }
        }
        if(flag){
            printf("%d\n",i);
        }
        
    }
}

注意b是一个数组,你定义一个变量当然不对