PTA 7-206 根据奇偶输出整数各位数字

PTA 7-206 根据奇偶输出整数各位数字
分数 4
作者 叶斌
单位 成都信息工程大学
本题要求编写程序实现:对输入的一个整数,如果是偶数从高位开始逐位分割并输出它的偶数位数字;如果是奇数则从高位开始逐位分割并输出它的奇数位数字。
整数的个位对应数位1,十位对应数位2,百位对应数位3…

输入格式:
输入在一行中给出一个整型范围内的正整数N (N>10)。

输出格式:
从高位开始隔位输出该整数的各位数字,每个数字后面有一个空格。要求,偶数只输出偶数位上数字,奇数只输出奇数位上数字

输入样例1:
123456
输出样例1:
1 3 5
输入样例2:
123457
输出样例1:
2 4 7
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

#include <stdio.h>
int main(){
    int count = 0;    //数组下标p; 记录位数count
    int integer, _integer, temp;    //定义个整数
    scanf("%d", &integer);
    temp = _integer = integer;
    for(int i = 1;  ; i++){		//计算该整数的位数
        if(_integer == 0)
            break;
        count++;    //记录该数的位数
        _integer /= 10;
    }
    _integer = temp;
    int numb[count];    //定义数组储存每位数
    for(int i = count - 1; i >= 0; i--){    //将该数的每位储存到数组中
        _integer = temp;
        _integer %= 10;    //取最后一位
        numb[i] = _integer;
        temp /= 10;    //缩小10倍
    }
    if(count % 2 == 0){    //个数为偶数时
        if(integer % 2 == 0){    //该整数为偶数时
            for(int i = 0; i < count; i += 2){
                printf("%d ", numb[i]);
            }
        }else{    //该整数为奇数时
            for(int i = 1; i < count; i += 2){
                printf("%d ", numb[i]);
            }
        }
    }else{    //个数为奇数时
        if(integer % 2 == 0){    //该整数为偶数时
            for(int i = 1; i < count; i += 2){
                printf("%d ", numb[i]);
            }
        }else{    //该整数为奇数时
            for(int i = 0; i < count; i += 2){
                printf("%d ", numb[i]);
            }
        }
    }
    return 0;
}

解题思路:
step1:计算该整数的位数并定义数组储存每位数
step2:判断个数是偶数还是奇数
step3:判断该整数时奇数还是偶数
step4:根据条件输出即可

归属知识点:
选择结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值