精华内容
下载资源
问答
  • char str[]={ 0x1F,0xF8,0x01,0x00,0x7F,0xFE,0x41,0x04,0x1D,0x70,0x01,0x00,0x1D,0x70,0x02,0x80,0x04,0x60,0x1A,0x1E,0xE1,0x08,0x1F,0xE0,0x00,0x40,0x02,0x80,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x...

    char str[]={ 0x1F,0xF8,0x01,0x00,0x7F,0xFE,0x41,0x04,

    0x1D,0x70,0x01,0x00,0x1D,0x70,0x02,0x80,

    0x04,0x60,0x1A,0x1E,0xE1,0x08,0x1F,0xE0,

    0x00,0x40,0x02,0x80,0x01,0x00,0x01,0x00,

    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

    0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xFE,

    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

    0x00,0x00,0x00,0x10,0x3F,0xF8,0x00,0x00,

    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,

    0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,

    0x00,0x00,0x00,0x00,0x7F,0xFC,0x00,0x00,

    0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF8,

    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

    0x00,0x00,0x7F,0xFE,0x00,0x00,0x00,0x00,

    0x00,0x00,0x7F,0xFC,0x44,0x84,0x44,0x84,

    0x44,0x84,0x44,0x84,0x44,0x84,0x44,0x84,

    0x48,0x84,0x48,0x7C,0x50,0x04,0x60,0x04,

    0x40,0x04,0x7F,0xFC,0x40,0x04,0x00,0x00,

    0x00,0x00,0x7F,0xF8,0x02,0x00,0x02,0x00,

    0x02,0x00,0x02,0x00,0x02,0x20,0x3F,0xF0,

    0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,

    0x04,0x24,0xFF,0xFE,0x00,0x00,0x00,0x00,

    0x04,0x00,0x03,0x00,0x01,0x80,0x01,0x00,

    0xFF,0xFE,0x00,0x00,0x00,0x00,0x04,0x80,

    0x06,0x40,0x04,0x20,0x08,0x10,0x08,0x18,

    0x10,0x0C,0x20,0x0C,0x40,0x08,0x00,0x00,

    0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,

    0x01,0x00,0x01,0xFE,0x7F,0x00,0x01,0x00,

    0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,

    0x01,0x04,0x01,0x04,0x00,0xF8,0x00,0x00,

    0x00,0x00,0x00,0x40,0x04,0x60,0x06,0x40,

    0x04,0x40,0x04,0x40,0x04,0x40,0x08,0x20,

    0x08,0x20,0x10,0x10,0x10,0x10,0x20,0x08,

    0x40,0x0E,0x80,0x04,0x00,0x00,0x00,0x00,

    0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x20,

    0x7F,0xF0,0x02,0x20,0x02,0x20,0x04,0x20,

    0x04,0x20,0x04,0x20,0x08,0x20,0x08,0x24,

    0x10,0x24,0x20,0x26,0x40,0x3C,0x00,0x00

    };

    6f83fddf9cb9ff6843fffd45e1807199.gif

    倚天照海花无数,流水高山心自知。

    展开全文
  • 题目描述:将输入的阿拉伯数字转化为大写汉字输出,备注:输入为9位数以下,高出报错。 例如:输入234—输出为贰佰叁拾肆,输入123456789—输出为壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖。 是上个月大疆笔试的测开...

    题目描述:将输入的阿拉伯数字转化为大写汉字输出,备注:输入为9位数以下,高出报错。

    例如:输入234—输出为贰佰叁拾肆,输入123456789—输出为壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖。

    是上个月大疆笔试的测开编程题,后来复盘时发现网上没有很好的C语言版本,于是把我的答案贴出来做个记录。

    编译环境:C

    解题思路:因为时间比较紧,所以就是建立如下的查询字典,找对应的数据然后提取并输出:

        char a[10][4] = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
        char b[6][4] = { "整","拾","佰","仟","万","亿" };

    (由于汉字是占2个字符,属于const char[3]类型的数据,选用char a[10][4]这样的二维数组进行定义)

    首先是提取出输入数据的位数与每一位的数字

        while (n != 0)
        {
            r[i] = n % 10;  //r[]中存放每一位的数据
            i++;
            n /= 10; 
            count++;    //count为输入数据的位数
        }

    接下来的数字就按顺序调用就行,关于位数的调用分为以下四种情况:

    ①5位数以下:则顺序调用("整","拾","佰","仟","万");

    ②5-8位数之间:对于6-8位数要先调用("拾","佰","仟");

    ③9位数:要先调用("亿");

    ④9位数以上:输出报错;

    对于第一种情况:

    for (i = count - 1; i >= 0; i--)
    {
    	printf("%s%s", a[r[i]], b[i]);  //因为第3位数对应的存在r[2]中,因此i=count - 1
    	count--;
    }

    此处当时在做的时候有个小问题,由于数据比位数的数组要滞后以为,例如r[2]对应的第三位数后应该接b[2],但实际上b[2]是“仟”了,因此当时在b[0]处增加了“整”,好让两个数组同步。如果单纯的b[i-1],会访问无效数据地址,当时这里卡了一下,为了赶时间所以就用暴力加字了。。。

    对于第二种情况:

    for (i = count - 5; i > 0; i--)
    {
    	printf("%s%s", a[r[i+4]], b[i]);//与上述原因相同,第6位数存在r[5]中,因此a[r[i+4]];
    	count--;
    }

    对于第三种情况:

    就比较简单了,只限制了亿位(其实再高也就是上述两种情况的重复),因此对于第9位设置为:

    if (count == 9)
    {
    	printf("%s%s", a[r[count-1]], b[count-4]);
    	count--;
    }

    完整的代码为:

    #include <stdio.h>
    
    int main()
    {
      int count = 0; //count是数字位数
      int i = 0;
      int r[10] = {0};//默认是十位数
      int n;
      char a[10][4] = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
      char b[6][4] = { "整","拾","佰","仟","万","亿" };
      printf("请输入金额:");
      scanf_s("%d", &n);
      while (n != 0)
      {
      	r[i] = n % 10;
    	i++;
    	n /= 10; 
    	count++;
      }
      printf("数组中的内容: \n");
      while (count >= 0)
      {
    	if (count > 9)
        {
    		printf("输入错误,请重新输入");
    	    break;
    	}
    	if (count == 9)
    	{
    		printf("%s%s", a[r[count-1]], b[count-4]);
    		count--;
    	}
    	else if (count >= 6 && count <= 8)
    	{
    		for (i = count - 5; i > 0; i--)
    		{
    			printf("%s%s", a[r[i+4]], b[i]);
    			count--;
    		}
    	}
    	else if (count <= 5 && count >= 0)
    	{
    		for (i = count - 1; i >= 0; i--)
    		{
    			printf("%s%s", a[r[i]], b[i]);
    			count--;
    		}
    	}
      }
      return 0;
    }

    存在的问题就是字典中的“整”字,把程序贴出来就是做个记录以防终面要复盘逻辑,等周末面完大疆三面了再来修改吧。

    仅供参考。

    展开全文
  • 输入:9001 输出:九千零一 #include #include #include #define DEBUG printf /*========================================================*/ int len_num(int num); //to judge the length of ...

    输入:9001

    输出:九千零一




    #include<stdio.h>
    #include<string.h>
    #include<malloc.h>
    
    #define DEBUG printf
    /*========================================================*/
    
    int len_num(int num);   //to judge the length of the number
    char* my_itoa(int num, int len); //to transform the number to a string
    char* handle_str(char* str_num, int len); //transform num to NUM
    
    /*========================================================*/
    
    int main()
    {
    	float num_test;
    	int num, len;
    	char* str_num;
    	char* str_result;
    	
    	while(1)
    	{		
    		printf("Please input a number:  ");
    		
    		if(!(scanf("%f", &num_test)))
    		{
    			printf("Invalid:data type not correct.\n");
    			break;
    		}	
    		else
    		{
    			num = (int)num_test;
       		
    			if (num_test != num)
    			{
    				printf("Invalid:number type not correct.\n");
    				printf("number: %f\n", num_test);
    			}
    			else if (num == 0)
    			{
    				printf("Number: 0\nLength: 1\nResult: 零\n");
    			}
    			else if (num_test > 9999 || num_test < 0)
    			{
    				printf("Invalid:number overflow.\n");
    				printf("number: %d\n", num);
    			}
    			else
    			{
    				len = len_num(num);
    		
    				str_num = my_itoa(num, len);
    
    				str_result = handle_str(str_num, len);
    	
    				printf("Number: %d\nLength: %d\n", num, len);
    				printf("Result: %s\n", str_result);
    	
    			}
    		}
    	}
    	return 0;
    }
    
    /*========================================================*/
    
    /*
      function:  to get the length of the number
      input : the input number, int num
      output: the length of the number, int num_len
    */
    
    int len_num(int num)
    {
    	int num_len;
    
    	if(num <= 9999 && num >= 1000)
    		num_len = 4;
    	else if(num <= 999 && num >= 100)
    		num_len = 3;
    	else if(num <= 99 && num >= 10)
    		num_len = 2;
    	else if(num <=9 && num >=0)
    		num_len = 1;
    	return num_len;
    }
    
    /*
      function:  to transform number to a string
      input : int num, int len
      output: char* point to a string
    */
    
    char *my_itoa(int num, int len)
    {
    	char *temp;
    	int i;
    	temp =(char*)malloc(sizeof(char)*len);
    
    	for (i = 1; i <= 5; i++)
    	{
    		if(len-i != -1)
    		{
    			temp[len-i] = num % 10 + '0';
    			//		DEBUG("temp%d %c",i,temp[len-i]);
    			num  = num / 10;
    		}
    		else
    			return temp;
    	
    	}
    }
    
    
    /*
      function:  to transform num to NUM
      input : char* str_num 
      output: None
    */
    
    char* handle_str(char* str_num, int len)
    {
    	int i=0, k;
    	char *str_result;
    	
        static char num_trans[10][4] = {"零","一","二","三","四","五","六","七","八","九"};
    	static char num_value[4][4] = {"千","百","十",'\0'};
    	
    	str_result = (char*)malloc(sizeof(char)*32);
    	
    	for(k = 4-len; k <=3 ; k++)
    	{
    		int j;
    		j = str_num[i]-'0';
    		if(!(str_num[i] == '0' && (str_num[i+1] == '0' || i ==len-1)))
    			strcat(str_result, num_trans[j]);
    					
    		if(j != 0)
    		{
    			strcat(str_result, num_value[k]);
    		}
    		i++;
    	}
    	return str_result;
    }
    


    展开全文
  • 汉字不能表示成ASCII码,简体汉字一般是用GB2312存储的,占用两个char位置。举例如下 main() { char chn[3]; //第三个存储'/0' ...//输出对应的数字,与0xff做且运算是为了保证输出正数 return 0; }

    汉字不能表示成ASCII码,简体汉字一般是用GB2312存储的,占用两个char位置。举例如下
    main()
    {
     char chn[3]; //第三个存储'/0'
     scanf("%s",chn); //这里输入一个汉字
     printf("%d %d/n",chn[0]&0xFF,chn[1]&0xFF);
    //输出对应的数字,与0xff做且运算是为了保证输出正数
     return 0;
    }
    展开全文
  • 执行部分的第一行是输出语句,调用printf函数在显示器上输出提示字符串,请操作人员输入自变量x的值。第二行为输入语句,调用scanf函数,接受键盘上输入的数并存入变量x中。第三行是调用sin函数并把函数值送到变量s...
  • 话不多说,直接上干货吧 printf函数的返回值是printf函数打印的字符数 int main(void){ int a = 2; printf(printf(printf("%d",a)));... //输入 1-99整数字输出数字所对应的汉字 int num; sc...
  • C语言实例 用Windows的“记事本”程序输入一篇文章,其中存有英文、数字汉字、空格、逗号和句号。并保存为文本文件data.txt。请编程统计并输出英文、数字、空格、逗号和句号的个数。
  • 执行部分的第一行是输出语句,调用printf函数在显示器上输出提示字符串,请操作人员输入自变量x的值。第二行为输入语句,调用scanf函数,接受键盘上输入的数并存入变量x中。第三行是调用sin函数并把函数值送到变量s...
  • 字符变量输入输出用%c符号。定义语法如下: char 变量名 = '一个字符值'; char类型占一个字节,所以一个char变量不能存放一个中文汉字(一个汉字占2个字节)。这里单个字符必...
  • 实例44 使用线类型函数设置多个汉字 123 实例45 彩色群点 125 实例46 饼图 126 实例47 产品折线图 128 实例48 直方图 131 实例49 变大变色的矩形与圆 133 实例50 多变的填充多边形 135 实例51 流星球 138 ...
  • * 把输入数字,先处理正负号,然后用前导 0 填充满 10 位数, * 每四位为一组,以输出特殊的亿位,万位,个位 * 输出位信息前一定会先输出数字信息,所以在位的字符数组中提前加入空格,输出时就不用再考虑空格了...
  • isalnum(ch)) //如果首字符既不是数字也不是字母 { if(ch!='\n'&&ch!=' '&&ch!='\t') { if(ch=='>'||ch=='||ch=='!') //以下代码实现超前搜索 { if((c=fgetc(in))=='=') //>=,,!=这些需被认为是一个符号...
  • Python:温度程序

    2019-09-09 16:16:53
    #Tempert.py #多行注释用''' ...#可以为变量同时赋数字和字符,与C语言不一样 #变量的命名可以是汉字 #字符串可以带双引号也可以带单引号,无区别 abc = "fwefw" print(eval("abc"))#不能直接输出...
  • 点阵取模软件

    热门讨论 2012-06-20 11:12:58
    字模数据输出可自定义各种格式,系统预设了C语言和汇编语言两种格式,并且可自己 定义出新的数据输出格式;每行输出数据个数可调。 6.支持四种取模方式:逐行(就是横向逐行取点),逐列(纵向逐列取点),行列(先...
  • 6.4 ATMEGAl6(L)PB口输出实验 6.5 8位数码管测试 6.6 独立式按键开关的使用 6.7 发光二极管的移动控制(跑马灯实验) 6.8 0~99数字的加减控制 6.9 4×4行列式按键开关的使用 第7章 ATMEGAl6(L)的中断系统...
  • PCtoLCD2002_取模软件

    2014-10-30 09:16:43
    字模数据输出可自定义各种格式,系统预设了C语言和汇编语言两种格式,并且可自己 定义出新的数据输出格式;每行输出数据个数可调。 6.支持四种取模方式:逐行(就是横向逐行取点),逐列(纵向逐列取点),行列(先...
  • 取字模软件 12864 点阵

    热门讨论 2012-01-18 10:33:52
    字模数据输出可自定义各种格式,系统预设了C语言和汇编语言两种格式,并且可自己 定义出新的数据输出格式;每行输出数据个数可调。 6.支持四种取模方式:逐行(就是横向逐行取点),逐列(纵向逐列取点),行列(先...
  • 会计理论考试题

    2012-03-07 21:04:40
    C、选择全拼输入法来输入汉字 D、在控制面板中选“输入法”,选择CBK汉字输入法 27.要想在文章中输入希腊字母“π”,应___B___。 A、用英文字母“PI”代替B、右击“输入法状态”窗口中的软键盘按钮,然后选择希腊...
  • PCtoLCD2002 LCD仿真器

    2009-08-13 11:49:02
    字模数据输出可自定义各种格式,系统预设了C语言和汇编语言两种格式,并且可自己 定义出新的数据输出格式;每行输出数据个数可调。 6.支持四种取模方式:逐行(就是横向逐行取点),逐列(纵向逐列取点),行列(先...
  • 3.5.3 输入/输出接口的扩展 3.5.4 键盘的接口技术 3.5.5 显示器的接口技术 3.5.6 A/D转换器的接口技术 3.5.7 D/A转换器的接口技术 3.5.8 开关电路接口及光电耦合器接口 第4章 AVR系列单片机应用基础 4.1 AVR单片机...
  •  所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了...
  • --hex* --bin 字库输出类型; --horiz-scan* --verti-scan 点阵字符扫描模式; --h-to-l* --l-to-h 点阵字符在字节的存储方式; --font-high=[font_h] 点阵字符的高与宽(应当相等)。 注:* 是默认项。 例子...

空空如也

空空如也

1 2
收藏数 27
精华内容 10
关键字:

c语言输入数字输出汉字

c语言 订阅