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算奇数还是偶数

C语言问题,求大神解决,谢谢拉。。我是小白,解释下原因
主要考察你c语言三目运算符的结合方向 是自右向左的 所以a<b?a:c<d?c:d 可以看成 a<b?a: (c<d?c:d) 1 < 4 ? a : (c < d ? c:d)括号内的表达式也可以看做是一个元素 因为 a = 1 b = 4 所以 条件 a < b 成立 所以选前者 a 答案就是 A) 1 ...

C语言小白求助···
include <stdio.h>int main(){int a[3][3];int i = 0, j = 0, num = 1;for(;i < 3;i++){for(;j < 3;j++){a[i][j] = num;++num;}}\/\/对角线我随便选一个,比如是左上到右下的int result = a[0][0] + a[1][1] + a[2][2];printf("%d",result);return ...

C语言问题,求大神解决,谢谢啦,我是小白,最好能够解释下。
题中,a=3 ,二进制为:0011;b=6,二进制值为:0110。所以(a^b)按位异或后的值为0101也就是5,左移两位后值(二进制)为:010100 也就是 :20

小白请教一道C语言的题
答案确实为C switch结构中,只有运行到break才会退出。当n%4=1时,出现开始匹配case1,但是没有遇到break,就继续执行,知道遇到case4的break才退出。当n%4=2时一样。当n%4=3时,匹配case3,然后遇到case4的break退出。。。以此思路继续分析即可 ...

C语言问题,求大神解决,谢谢啦,我是小白,最好能够解释下原因..
第三项 第一项的结果不正确。第二项和第四项结果等同都是指向指针的指针操作。可以将二维数组看成一个双重指针,第一个中括号是一个一重指针。比如说a[n][m]中a[0]是一个指向a[0][m]数组首位a[0][0]的指针,而a则是指向指针数组*a[n]的首位a[0]的指针。这样我们来看B选项,*(a+2)...

C语言问题,求大神解决,谢谢拉。。我是小白,解释下原因
x<<=3:把x的二进制位向左移动3位 因为x=1,所以 x的二进制为:0000 0001 向左移动3位后为:0000 1000 0000 1000转为10进制位:2^3 = 8 所以,选:D

c语言问题,小白求救,问题是要求sinx=x-x^3\/3!+x^5\/5!...直到sinx的累加...
void main(){ int i,jc,a;double x,sinx,xiang;printf("输入弧度值x:");scanf("%lf",&x);printf("sin(%.2f)",x);sinx=0;for(a=1,jc=1,i=1;;i++){ jc=jc*i;if(i%2!=0){ xiang=a*pow(x,i)\/jc;sinx=sinx+xiang;a=-a;} if(xiang<0.000001) break;} printf("=%...

小白求解1>F:\\dy\\dy.c(12,2): error C2146: 语法错误: 缺少“;”(在...
你的C语言程序,在提示输入语句printf函数末尾都缺少英文分号 完整的C语言程序如下(改动的地方见注释)include <stdio.h> int main(){ int num1;int num2;int num3;int num4;printf("请输入第一个整数;");\/\/这里末尾加分号 scanf_s ("%d", &num1);printf("请输入第二个整数;");\/\/这里...

c语言,小白求解
在表达式后面加一个分号“;”就构成了表达式语句。这里提供的四个选项,A不是是合法的语句(少了分号)。++j也是一个表达式,++j;也是一个表达式语句。A)a=1,b=2 逗号表达式,加了分号就是语句 B)++j;C)a=b=5;D)y=(a=3,6*5);...

C语言小白求问。如何读取字符串文件,并根据不同长度的单词统计总共出现...
一、遍历字符串,通过分割符号空格及标点符号获取单词数组。二、大小写转换,把数组单词全部转换为大写或者小写(识别同一个单词不同大小写)。三、遍历单词数组,累加统计每个单词数量。(可遍历到第一个单词作为当前统计对象,之后每遍历到相同单词,就将对应变量计数+1,并将该单词字符串置0)。思路:...

相似回答