如果十个自然数里有能被2整除的,那就算作一个,一直累加,并且把这个自然数加一

输入
十个自然数
输出
(如果十个自然数里有能被2整除的,那就算作一个,一直累加,并且把这个自然数加一)


输入
32 39 19 77 25 86 25 21 79 87
输出
2
31 39 19 77 25 85 25 21 79 87

输入
38 58 83 25 13 45 31 47 94 64
输出
4
37 57 83 25 13 45 31 47 93 63

#include<stdio.h>
int set_odd(int*array, int size)
{
    int i,count = 0;
    for (i = 0; i < size; i++)
    {
        if (array[i] % 2 == 0)
        {
            count++;
            --array[i];
        }
    }
    return count;
}
int main(){
    int nums[10],i;
    for(i=0;i<10;i++){
        scanf("%d",&nums[i]);
    }
    int count=set_odd(nums,10);
     printf("%d\n", count);
    for (i = 0; i < 10; i++)
        printf("%d ", nums[i]);
    return 0;
}

#include<stdio.h>
int main()
{
    int a[10];
    int i, count = 0;
    for (i = 0; i < 10; i++)
    {
        scanf("%d", &a[i]);
        if (a[i] % 2 == 0)
        {
            count++;
            --a[i];
        }
    }
    printf("%d\n", count);
    for (i = 0; i < 10; i++)
        printf("%d ", a[i]);
}

解答如下

img

#include<stdio.h>
int main()
{
    int n=10;
    int arr[10];
    int count=0;
    for(int j=0; j<n; j++)
    {
        scanf("%d",&arr[j]);
        if(arr[j]%2==0)
        {
            count++;
            arr[j]-=1;
        }
    }
    printf("%d\n",count);
    for(int j=0; j<n; j++)
        printf("%d ",arr[j]);
    return 0;
}