从键盘上输入一个5位十六进制整数,怎么判断该十六进制数是否为回文数?比如8A9A8,输出yes

从键盘上输入一个5位十六进制整数,怎么判断该十六进制数是否为回文数

你是要判断16进制是否回文?只要当做字符串处理就可以了

#include <stdio.h>
int main()
{
    char s[6];
    gets(s);
    if(s[0] == s[4] && s[1] == s[3])
        printf("yes");
    else
        printf("no");
}

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7811767
  • 这篇博客也不错, 你可以看下从键盘上输入3个正整数,判断这3个正整数是否可以构成一个三角形,进一步判断是等边(输出1)、等腰(输出2) 回文是指正读和反读都一样的数或字符,键盘上读取一个包含5位数字的长整数,并判断它是否是回文
  • 除此之外, 这篇博客: 蓝桥杯单片机串口通信综合示例中的  功能:计算机以十六进制发送数据 单片机接收后 以十进制在数码管上显示,并且将数据加一再发送到计算机 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    #include <reg52.h>
    #include <intrins.h>
    
    #define uint unsigned int
    #define uchar unsigned char
    uint num; // 申明全局变量
    sbit DU = P2^6;//数码管段选
    sbit WE = P2^7;//数码管段选
    
    //共阴数码管段选表0-9
    uchar code SMGduan[]= {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F,};
    //数码管位选码
    uchar code SMGwei[] = {0xfe, 0xfd, 0xfb};
    void timer () //定时器1 的初始化函数
    {
      EA = 1;	  //总中断开关
      ET0 = 1;	  // 定时器1中断开关 
      TR0 = 1;  
      REN = 1;//允许串口接收
      TMOD |= 0x01;	// 定时器1 16模式
      TH0 = 0xee;
      TL0 = 0x00; // 定时50ms
    
    }
    
    void UART ()  // 串口通信中断
    {
      EA = 1;	 //总中断开关
      ES = 1;	//串口中断开关
      SM0 = 0;  SM1 = 1; 
      REN = 1;	//允许串口接收    
      TR1 = 1;        
      TMOD |= 0x20;
      TH1 = 0xfd;
      TL1 = 0xfd;
     
    }
    void display(uchar i)
    {
    	static uchar wei; 		
    	P0 = 0XFF;//清除断码
    	WE = 1;//打开位选锁存器
    	P0 = SMGwei[wei];
    	WE = 0;//锁存位选数据
    	switch(wei)
    	{
    		case 0: DU = 1; P0 = SMGduan[i / 100]; DU = 0; break;
    		case 1: DU = 1; P0 = SMGduan[i % 100 / 10]; DU = 0; break;	
    		case 2: DU = 1; P0 = SMGduan[i % 10]; DU = 0; break;		
    	}
    	wei++;
    	if(wei == 3)
    		wei = 0;
    }
    void main ()
    {  
    	timer ();
    	UART ();
    	while(1); 
    }
    void time () interrupt 1 // 定时中断函数
    {
      TH0 = 0xee;
      TL0 = 0x00; // 定时50ms
      display(num); //数码管显示
    }
    void UART1 () interrupt 4
    {
      if(RI)
      {
        uint temp;
    	RI = 0;
    	num = SBUF; // 接收数据
    	temp = num;
    	temp++;
    	SBUF = temp; // 发送数据
      }	  
        if(TI)
    	TI = 0;
    }
    

     


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