c语言pat基础题改错8.4-1

img

我的答案如下:


#include<stdio.h>
int main(){
    int cnt,arr[1000],ocnt=0,ecnt=0;
    scanf("%d",&cnt);
    printf("\n");
    for(int i=0;i<cnt;i++){
        scanf("%d ",&arr[i]);
    }
    for(int i=0;i<cnt;i++){
        if(arr[i]%2==0){
            ecnt++;
        }else{
            ocnt++;
        }
    }
    printf("\n%d %d",ocnt,ecnt);
}

img


望大家斧正。

修改如下,改动处见注释,供参考:

#include<stdio.h>
int main() {
    int cnt, arr[1001], ocnt = 0, ecnt = 0;
    scanf("%d", &cnt);
    //printf("\n");           //  修改
     for (int i = 0; i < cnt; i++) {
        scanf("%d", &arr[i]); //scanf("%d ", &arr[i]); "%d " 格式控制符多了空格 修改
    }
    for (int i = 0; i < cnt; i++) {
        if (arr[i] % 2 == 0) {
            ecnt++;
        }
        else {
            ocnt++;
        }
    }
    printf("%d %d", ocnt, ecnt); //printf("\n%d %d", ocnt, ecnt);  修改
    return 0;
}

格式错误,试试看
printf("\n%d %d",ocnt,ecnt);
->
printf("%d %d",ocnt,ecnt);

img


这个地方多了一个空格“%d"那个地方

img

img


(๑•̀ㅂ•́)و✧

【以下回答由 GPT 生成】

你的代码基本上是正确的,不过有几个小问题需要修复。我在下面的代码中对其进行了修改:

#include <stdio.h>

int main() {
    int cnt, arr[1000], ocnt = 0, ecnt = 0;
    scanf("%d", &cnt);
    printf("\n");

    for (int i = 0; i < cnt; i++) {
        scanf("%d", &arr[i]);
    }

    for (int i = 0; i < cnt; i++) {
        if (arr[i] % 2 == 0) {
            ecnt++;
        } else {
            ocnt++;
        }
    }

    printf("%d %d\n", ocnt, ecnt);
    return 0;
}

修改点如下:

  1. 第18行: 删除了多余的空格。这是因为当输入数字时,不需要在格式字符串中包含空格。
  2. 第21行: 修改了格式占位符。这是因为在最后一个printf语句中,我们需要以“奇数个数 偶数个数”的形式输出结果。所以更正为printf("%d %d\n", ocnt, ecnt);
  3. 第23行: 添加了return 0;语句。这是为了表示程序的正常结束。

现在你可以编译和运行修改后的代码,通过输入一串数字来测试,并获取正确的奇数和偶数个数结果。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^