oj练习1明明最近在一家软件公司实习公司分配给他一个任务要他写一个小程序这个程序的功能是求出一个浮点数的小数部分的长度。例如程序输入1.1则输出1程序输入1.11则输出2明明觉得这个非常简单花了不到5分钟的时间就把程序给写出来了然后就把程序交给了测试员测试。但是没有想到的是经过测试员的测试发现了一大堆的错误返回的结果很多都是不对的这个令明明相当的不解始终想不通自己的程序错在哪里。你是一名经验丰富的程序员明明把这个问题来求助于你明明和你说了他的想法你一听就明白明明错在了哪里原来明明使用double型来存放浮点数但是由于double型的精度问题不可能把所有的小数都精确的保存好如果小数位数很长就会出错。你发现了问题。现在请你写出正确的程序。 明明的问题可以归结为给你一个浮点数请你求出这个浮点数的小数位数。个人总结1用char型数组存储浮点数2用strchr找到‘.的位置3用strlen计算.后一位置开始到\0的长度即为小数位数#includestdio.h #includestring.h int main() { char num[100]; while(scanf(%s\n,num)!EOF) { char * posstrchr(num,.); if(posNULL) { printf(0\n); } else { int countstrlen(pos1); printf(%d\n,count); } } return 0; }2输入一个十进制数将其化成N进制数输出2≤N≤16)。 输出结果时大于等于10的数字用字母代替A代表10B代表11以此类推。输入说明你的程序需要从标准输入设备通常为键盘中读入多组测试数据。每组输入数据由一行组成每行有2个数分别代表十进制数m0≤ m 2^31和进制N2≤N≤16)它们以空格分隔在行首和行尾没有多余的空格。输出说明对每组测试数据你的程序需要向标准输出设备通常为启动该程序的终端依次输出一组对应的答案输出10进制数转换后的N进制数。所有数据前后没有多余的空格两组数据之间也没有多余的空行。#includestdio.h int main() { int m, n; while (scanf(%d %d, m, n) ! EOF) { if (n 10) { printf(%d\n, m); continue; } if (m 0) { printf(0\n); continue; } int a[100]; int i 0; // 短除法进行进制转换 while (m 0) { a[i] m % n; m m / n; i; } // 逆序输出 for (int j i - 1; j 0; j--) { if (a[j] 10) { printf(%d, a[j]); } else { printf(%c, A (a[j] - 10)); // 使用字母A-F表示10-15 } } printf(\n); } return 0; }3以字符串形式输入仅有整数和加减正负号构成的表达式输出该表达式的值。输入说明标准输入设备中有多组测试数据每组输入数据由一行组成输入仅有整数和加减正负号构成的表达式但是表达式可以插入空格。输出说明依次输出从标准输入设备中读入的每一组测试数据对应的结果输出一行输出该表达式的值。所有数据前后没有多余的空格两组数据之间也没有多余的空行。#include stdio.h int main() { int num, sign 1, result 0; char c; while (scanf(%d, num) ! EOF) { result 0; // 重置结果 sign 1; // 重置符号 // 第一个数字 result num; // 继续读取运算符和数字 while (scanf(%c, c) ! EOF c ! \n) { if (c ) continue; // 忽略空格 if (c || c -) { sign (c ) ? 1 : -1; if (scanf(%d, num) ! EOF) { result sign * num; } } } printf(%d\n, result); } return 0; }文献翻译近年来预训练模型在人工智能研究中占据了重要地位。研究人员一般会先使用大规模数据训练出通用模型再针对具体任务进行微调。这样一来模型就可以利用预训练学到的知识提升下游任务的性能。在自然语言处理领域许多语言模型都在海量文本语料上进行预训练并在文本分类、机器翻译、问答等任务中表现出色。预训练加微调的模式既降低了训练成本又增强了模型的泛化能力已经成为当代人工智能研究的重要范式。