C语言小白求解一道题。

输入任意一个四位数,如果第二位是奇数,则输出这个四位数,如果第二位是偶数,则将这个四位数倒叙输出。

#include <stdio.h>
#include <stdlib.h>

int main()
{
unsigned short num;
unsigned short reverse=0;

printf("input a num\r\n");
while(1)
{
scanf("%d", &num);
if(num > 9999 || num < 1000)
printf("输入四位数\r\n");
else
break;
}

if((num /10) % 2)
{
printf("是奇数num = %d", num);
return 0;
}

while(num)
{
reverse *= 10;
reverse += num % 10;
num /= 10;
}

printf("是偶数reverse = %d\n", reverse);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-17

#include <stdio.h>

#include <stdlib.h>


int odd(int num);  //对num第二位进行判断奇偶性,是奇数则返回1偶数返回0

int invert_num(int num); //用于对偶数进行数字转换


int main()

{

int num;

    int i;

    

    do

    {

printf("请输入介于1000~9999之间的四位数:");

scanf("%d",&num);

    }while((num < 1000)||(num > 9999));

    

    if( odd(num))

    {

printf("该数字的第二位是奇数,该数字是:%d\n",num);

    }

    

    else

    {

printf("该数字的第二位是偶数,转换后为:%d\n",invert_num(num));

    }

    

system("pause");

return 0;

}


int odd(int num)

{

int num_two = 0;

    

    num_two = ( num / 10 ) % 10; //取得第二位的数字

    

    if( (num_two % 2) == 0 )

    {

return 0; //表明是偶数

    }

    else

    

    return 1;

}


int invert_num(int num)

{

int a;

    

    a = (num % 10) * 1000 + (num / 10) % 10 * 100 + (num /100) % 10 *10 + (num /1000) % 10 * 1;

    

    return a;

第2个回答  2013-12-17

本题主要涉及的知识点包括:输入输出语句,数组的定义及各元素遍历;条件判断语句的使用;求模运算符。

参考程序如下:


#include <stdio.h>
int main()
{
    int array[4],i,j,temp;
    printf("请输入一个四位数:");
    scanf("%d%d%d%d",&array[0],&array[1],&array[2],&array[3]);
    if(array[1]%2==1)
    {
       printf("顺序输出四个数为:");
       for(i=0;i<4;i++)
      {
         printf("%d  ",array[i]);
      }
      }else
      {
          printf("倒叙输出四个数为:");
         for(i=3;i>=0;i--)
         {
              printf("%d  ",array[i]);
           }
       }   
      return 0;
}

第3个回答  2013-12-17
第二位是十位的话:

#include <stdio.h>

int Invert(int a)
{
int b = 0;
b = a/1000 + a/100%10 * 10 + a/10%10 * 100 + a%1000 * 1000;
return b;
}

int main()
{
int a = 0;
int b = 0;
printf("please input a number:\n");
scanf("%d",&a);
b = a / 10 % 10;
if(b % 2 != 0)
printf("%d\n",a);
else
printf("%d\n",Invert(a));
return 0;
}
第4个回答  2013-12-17
用itoa转成字符串,然后判断,不过0算奇数还是偶数
相似回答