关于学习C++问题求解,求解

菜鸟学c++求平均值,函数调用出错,找不出,希望帮忙解决
[问题点数:20分]
菜鸟学c++求平均值,函数调用出错,找不出,希望帮忙解决
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2003年9月 C/C++大版内专家分月排行榜第二2002年6月 C/C++大版内专家分月排行榜第二2002年4月 C/C++大版内专家分月排行榜第二
2007年3月 C/C++大版内专家分月排行榜第三2007年2月 C/C++大版内专家分月排行榜第三2007年1月 C/C++大版内专家分月排行榜第三2003年7月 C/C++大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。volcanol -------View OF Linux Can Appreciate Nature OF Linux。
& & &最近再次复习C++语言,用的教材是《C++ Primer》这本教材, 看到第二章的时候,里面有个问题困扰了我。
于是想上网查查怎么回事, 结果看了很久都没有得到一个满意的答案。
& & 书上有这么一段话:当将一个超出数据类型取值范围的值赋值给这个类型的一个变量时,变量的值的结果由变量的
类型决定。
& &后面还有这么一段解释:
& &1、当接受值的变量类型为无符号类型时, &变量的值 = &超出变量范围的值 % 类型可以表示的数值的个数。
unsigned char nT
nTest = 343;
那么这样nTest的值就可以用下面的方式进行计算:
  nTest = 343 % 256 = 343 - 256 = 87 & &//中间的343-256 是计算方便,实际上没有这种转换方式
我在RHEL中测试的结果如下:
[root@localhost cpp_src]# cat test.cpp
#include &iostream&
int main()
unsigned char nT
unsigned int
nTest = 343;
std::cout&&"nTest="&&nTest&&std::
std::cout&&"n="&&n&&std::
std::cout&&"343%256="&&343%256&&std::
[root@localhost cpp_src]# g++ test.cpp
test.cpp: In function &int main()&:
test.cpp:7: 警告:大整数隐式截断为无符号类型
[root@localhost cpp_src]# ./a.out
343%256=87
  可以看到测试的时候,对截断数据进行了提示,而且最终得到的结果也是这么计算的。
  让我迷惑的不是上面的过程,上面的过程非常的自然。令我迷惑的是下面的情况:
  & 当接受值的变量类型为无符号型,而赋给它的值是一个负数,该如何处理。
unsigned char nT
nTest = -1;
  按照上面的说法: & nTest = -1 % 256 ; &
& & &问题就出在这个地方,对于负数的求余数,我们该怎么求呢?以前从来没注意这个问题,
这次就想一定要弄明白。
[root@localhost cpp_src]# cat test.cpp
#include &iostream&
int main()
unsigned char nT
unsigned int
nTest = -1;
std::cout&&"nTest="&&nTest&&std::
std::cout&&"n="&&n&&std::
std::cout&&"-1%256="&&-1%256&&std::
执行结果为:
[root@localhost cpp_src]# g++ test.cpp
[root@localhost cpp_src]# ./a.out
  经过这个地方的计算,我们并不能得到什么规律,但是我们发现一个问题: &n= 255 = 256 + (-1)&
256 是unsigned char 可以表示的数值的个数(8bit可以表示256个数), 而 -1 是 -1 % 256 后得到的余数。
于是我就继续做了几个实验:
[root@localhost cpp_src]# cat test.cpp
#include &iostream&
int main()
unsigned char nT
unsigned int
nTest = -367;
std::cout&&"nTest="&&nTest&&std::
std::cout&&"n="&&n&&std::
std::cout&&"-367%256="&&-367%256&&std::
执行结果为:
[root@localhost cpp_src]# g++ test.cpp
test.cpp: In function &int main()&:
test.cpp:7: 警告:大整数隐式截断为无符号类型
[root@localhost cpp_src]# ./a.out
-367%256=-111
分析: &n=145 = 256 + (-367%256)= 256 + (-111) = 145;
还有下面的实验:
#include &iostream&
int main()
unsigned char nT
unsigned int
nTest = -1000;
std::cout&&"nTest="&&nTest&&std::
std::cout&&"n="&&n&&std::
std::cout&&"-="&&-1000%256&&std::
执行结果如下所示:
[root@localhost cpp_src]# g++ test.cpp
test.cpp: In function &int main()&:
test.cpp:7: 警告:大整数隐式截断为无符号类型
[root@localhost cpp_src]# ./a.out
-1000%256=-232
分析也是: &n = 24 = 256 + (-1000 % 256) = 256 + (-232) = 24 ;
于是我得到一个结论:
  无符号变量的值 = 类型可以取值的个数 + (负数 % 类型可以取值的个数)
例如8bit的计算公式为:
& & &无符号变量的值 = 256 + (负数 % 256 )
下面通过代码进行测试:
#include &iostream&
int main()
unsigned char nT
unsigned int
unsigned int
for(i=0;i&=10;i++)
nTest = -1000+i;
n=256 +( (-1000+i) % 256);
std::cout&&"nTest="&&nTest&&std::
std::cout&&"j="&&j&&std::
std::cout&&"n="&&n&&std::endl&&std::
测试结果为:
[root@localhost cpp_src]# g++ test.cpp
[root@localhost cpp_src]# ./a.out
  通过上面的测试,可以证明我的猜想是正确的。
  接下来的问题如何求取这个余数,因为以前都没考虑过这个问题。我们这里再次来进行猜想:
我们知道 -1000 &% 256 = - 232,而 & + (-1000) = -232
& & & & & & -1 & & & % 256 &= -1 & & & &而 1 & & /256*256 + (-1) = -1
因此我们这样进行猜想求模公式为:
& &负数 % 变量类型可以表示数的个数 &= 负数 * (-1) / 变量类型可以表示数的个数 * 变量类型可以表示数的个数 + 负数
下面我们用代码进行测试,验证上面的公式是否正确。
#include &iostream&
int main()
for(int i=0;i&=10;i++)
n=(-1000+i)%256;
k = (-1000 + i)*(-1)/256*256 + (-1000+i);
std::cout&&"n="&&n&&std::
std::cout&&"k="&&k&&std::endl&&std::
执行结果如下
[root@localhost cpp_src]# g++ mod.cpp
[root@localhost cpp_src]# ./a.out
  可以发现我的猜想与实际的结果一样,因此可以确定这种方法是对的。
  1、 当用正数赋值给无符号数时,如果正数在无符号数表示的值范围内时直接赋值。
& & & & & &当用正数赋值给无符号数时,如果正数不在无符号数表示的值范围, 即正数 》 表示的值的范围 ,&
& & & & & 得到的结果为: &无符号变量 = 正数的值 % 无符号数类型可以表示的值个数
& & & 2、当用负数给无符号数赋值时,&
    无符号变量的值 = 类型可以取值的个数 + (负数 % 类型可以取值的个数)
  3、负数 % 正数 的求模公式
& & & & & & &负数 % 类型可以取值的个数 &= 负数 * (-1) / 类型可以取值的个数* 类型可以取值的个数&+ 负数
   &结合上面的第二条和第三条就可以得到有符号数给无符号数赋值时的最终求值公式。
   无符号变量的值 = &类型可以取值的个数 +&负数 * (-1) /&类型可以取值的个数&*&类型可以取值的个数&+ 负数
  可以利用上面的公式进行测试: &&
unsigned char
unsigned int
程序的执行结果如下:
[root@localhost cpp_src]# g++ test.cpp
test.cpp: In function &int main()&:
test.cpp:8: 警告:大整数隐式截断为无符号类型
[root@localhost cpp_src]# ./a.out
用手代入公式计算:
  无符号变量的值 = &类型可以取值的个数 +&负数 * (-1) /&类型可以取值的个数&*&类型可以取值的个数&+ 负数
& & & n = 256 + (-171)* -1 / 256 * 256 + (-171) &= 85
结果正确。
    至此,本次问题的讨论到此结束,如果您有更好的计算方法,请您不吝赐教。
如果您觉得我说的不正确,也请您不吝赐教。关于VS2013下scanf等函数报错的解决方法 - C/C++学习入口 - 中国红客联盟 -
Powered by Discuz! Archiver
关于VS2013下scanf等函数报错的解决方法
我是菜鸟 被这个问题困惑一下午 终于找到了解决方法
在vs2013下使用scanf strcat等函数时会提示看这些函数的声明
需要改成scanf_S strcat_s等
有些不能加个_s 还需要变换里面的参数&&
找了良久 终于找到答案在哪里了
果然还是MSDN
/zh-cn/library/d45bbxx4(v=vs.120).aspx
根据版本选择相应的版本 恩 就是这样
话说 我很纳闷 假如我要是在xilinx的xps平台上用C写程序 那这些个函数使用带S的呢还是不用带S的呢?
关键还是要看编译器, 如果直接在VS2013里面用自带的编译器编译就用带_s的, 如果目标平台有自己的编译器, 且用专用编译器编译就应该可以不带
FCB 发表于
00:25 static/image/common/back.gif
关键还是要看编译器, 如果直接在VS2013里面用自带的编译器编译就用带_s的, 如果目标平台有自己的编译器, 且 ...
您这一说 突然明白了很多啊
建议能用带_s的就用,这个函数比不带的更安全,因为不带的不对缓冲区长度进行检测,就可能会造成缓冲区溢出攻击
IceAmber 发表于
15:32 static/image/common/back.gif
建议能用带_s的就用,这个函数比不带的更安全,因为不带的不对缓冲区长度进行检测,就可能会造成缓冲区溢出 ...
唉 现在3条路摆在我面前
1.用C完成嵌入式开发
2.用VHDL ip核完成项目开发
3,轻松自由的理论研究工作
不知何去何从
浅浅的悲伤
VS2013~听起来很高端的模样。
查看完整版本:当前位置: >
> 现在学习C++找工作还来得及吗?该如何解决
现在学习C++找工作还来得及吗?该如何解决
Hacken_lee & at
现在学习C++找工作还来得及吗?现在我已经大四了,以前学过C++课程,不过比较基础。现在想学习一门
专长以能在毕业时找个好点的工作。不知学什么好,选择了C++。不知现在学它,
能否在毕业时找到与之相关的工作。我虽然能吃苦,但不知在毕业时能学得怎么
样,能找到相关的工作吗?请大家提提建议!
来得及,就拿我来说吧,开学就大4,大1-大3知识掌握一般的c++语法,稍微能编点小程序,也能拿mfc稍微写出一点东西,7月份刚刚开始深入研究c++,别的不敢说,至少现在已经看完c++ primer,effective c++ 和设计模式,c++设计新思维和tc++pl看了一半,主要还是要多花时间,我现在基本上每天花7-8个小时研究c++hacker1015 & &
& & (0)(0)
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&增值电信业务经营许可证湘B2-扫一扫下载手机客户端
扫描我,关注团购信息,享更多优惠
||网络安全
| | | | | | | | | | | | | | | |
||电子电工
汽车交通| | | | | | | | | |
||投资理财
| | | | | | | | | | | | | | | | |
| | | | | | |
| | | | | | | | | | | | | | | | | | |
| | | | | | |||
||外语考试
| | | | | | | | |
| 视频教程|
工程问题C++语言求解(原书第3版)
定价:¥79.00
校园优惠价:¥59.25 (75折)
促销活动:
商品已成功飞到您的手机啦!快登录手机站看看吧!
下载客户端
> 微信关注“互动出版网”,便捷查询订单,更多惊喜天天有
原书名:Engineering Problem Solving with C++,Third Edition
原出版社:
ISBN:1上架时间:出版日期:2014 年8月开本:16开页码:444版次:1-1
所属分类:
《工程问题C++语言求解(原书第3版)》介绍如何利用ANSI C++编程语言以基于对象的编程方式来解决工程问题。书中从通用的工程问题解决方法论入手,以众多工程问题为应用对象,生动、有趣地讲解了C++语言中的基本操作符、标准输入和输出、基本函数、控制结构、数据文件、模块化编程、数组以及指针等重要概念。
《工程问题C++语言求解(原书第3版)》实例内容翔实,紧贴所讲知识点,实战性强,可作为高等院校工程和科学计算相关专业的教材或教学参考书,也可作为初学者建立C++编程知识与实际工程应用之间连接的桥梁。
《工程问题C++语言求解(原书第3版)》
出版者的话
第1章 计算与工程问题求解导论
1.1 历史回顾
1.2 现代工程成就
1.3 计算机系统
1.3.1 计算机硬件
1.3.2 计算机软件
1.4 数据表示与存储
1.4.1 数制
1.4.2 数据类型与存储
1.5 解决工程问题的方法论
第2章 简单的C++程序
工程挑战:汽车性能
2.1 程序结构
2.2 常量和变量
  人类对于语言的最初使用,是猿类进化到人类的重要标志,也是信息技术的诞生之源。而文字以及印刷技术的出现和使用,第一次突破了时空的约束而传递着更为复杂、容量更大的信息。“鸿雁传书”是中国文化中记录较多的信息传递方式,如晚唐诗人杜牧在《七律·寄远》中最早写道:“碧云空断雁行处,红叶已凋人未来。塞外音书无信息,道傍车马起尘埃。”而直到20世纪60年代,计算机的普及与应用才彻底激发了人类充分利用信息的巨大潜力。无论身处哪个时代,语言始终都是描述、传递和处理信息的载体和有效工具,在当前的网络信息时代,计算机编程语言更是超越延续了几万年的语言工具,在这个技术时代留下深深的烙印。
  然而面对浩如烟海的计算机软件编程书籍,每个初入门的读者都迫不及待地想弄清楚:“究竟哪种编程语言最优秀?”“哪种编程语言用得更多?”“哪种编程语言能最快入门?”这些问题从学术上、理论上、工程应用上都有很多解释,而且由于每个程序员从事的专业领域、技术水平或者掌握程度的不一样,也会有不同的回答,因此更多的是“仁者见仁,智者见智”,或者“如人饮水,冷暖自知”。
  至于学习编程,专一与执着尤为重要。曾国藩在其家书中说“掘井多而皆不及泉”,意思说挖了很多井,但没有一口井里挖出泉水。这对于那些在多种编程语言中徘徊不定的年轻人来说,应该有足够的启发了:为何不扎扎实实掌握一门编程语言,真正尝到泉水的甘甜清冽呢?难道大家从这之中还不能体会到专注的重要吗?
  本书是以工程问题求解和C++编程语言知识结构相互融汇讲解的经典之作,由美国专家Delores M. Etter和Jeanine A. Ingber共同编著,从通用的工程问题解决方法论入手,以物体的速率、海水冰点、气象气球、臭氧测量、仪器可靠性、语音信号分析、飓风等级分析、海啸预警、地形导航以及电路分析等众多工程问题为应用对象,将C++语言中的基本操作符、标准输入和输出、基本函数、控制结构、数据文件、模块化编程、数组以及指针等重要概念娓娓道来,使得学习C++的各类知识点变得更加生动、有趣,更重要的是整个过程充满了解决工程问题需要的丰富而充满自信的经验,能够让初学者更快地建立C++编程知识与实际工程应用的连接,这样在读者的脑海中对编程知识点的印象与理解就更加深入透彻和胸有成竹了。
  学习编程语言终究离不开多练勤思。其实,大体上来看,学习C++编程语言不外乎掌握语言与操作工具,工具的操作虽然有平台和操作方式的区别,但在熟练掌握之后不必过于迷恋,在暂时不得要领而难以登堂入室之时也不必徘徊彷徨。要想具备熟练的语言技能,除了看书阅读外,还需要有目的性地进行小型工程项目开发,需要思考与设计。日积月累,终有一天你会由编程路漫漫中的“渐悟”走向登高一览的“顿悟”,发现编程学习中很多东西原来“不外乎如此”“本质上就是……”,从而豁然开朗,步入到“触一类而通万象”的知识启发的“三摩地”。
  衷心感谢我们多年的朋友程雄先生对本书文字及内容的认真审核,您在C++方面的精湛技能以及深厚的经验令我们印象深刻!最后,祝大家学习愉快!
  2014年5月于武汉光谷
  C++语言源自于C语言,它通过使用类和程序员自定义类型来支持面向对象编程的特性。C语言中那些适用于系统级操作和嵌入式编程的特性在C++中也得到了支持,这使C++语言成为最强大和最通用的编程语言之一,同时对于科学家和工程师而言,它也是计算导论课程的不错选择。本书主要介绍如何使用C++来求解工程问题,同时也介绍了C++语言面向对象的特性。我们的目标如下:
  设计一种用于求解工程问题的通用方法论。
  在着眼于编程和解决问题的基本层面的同时,阐述C++的面向对象特性。
  通过大量的工程示例和应用,说明使用C++解决问题的过程。
  为了使内容通俗易懂,整合了对于数据类型、函数、在C++标准模板库中定义的容器类的介绍。
  为了达到这些目标,第1章中介绍了本书其他章节求解工程问题时使用的五步处理过程。第2章介绍了C++支持的内建数据类型,同时介绍了类、自定义对象和支持标准输入/输出的成员函数。第3~6章介绍了C++解决工程问题的基本能力,包括控制结构、数据文件、函数和自定义数据类型。第7和第8章介绍了数组、向量和字符串类。第9章介绍了指针、动态内存分配和链式数据结构的用法。第10章对于一些高级主题进行了更深入的介绍,包括函数模板、类模板、递归成员函数、继承和虚函数。贯穿所有这些章节,我们使用了大量来自不同的工程、自然科学和计算机科学的示例。这些示例的解决方案都是使用五步处理过程和标准C++开发的。
  第3版的特征
  介绍了两种集成开发环境(IDE):
  NetBeans
  MS Visual Studio
  包含了使用全球定位系统(GPS)数据和海啸预警系统数据的新工程应用程序。
  包括了按位操作符的介绍。
  扩展了控制结构的覆盖面。
  为了灵活性考虑,在本书可选章节提早介绍了类和自定义数据类型的开发。
  整合了贯穿全书的类的覆盖范围,提供了标准解决方案和面向对象解决方案的比较。
  包括了附加的语句块、程序跟踪和内存快照以及流程图。
  学生资源和教师资源中心可以在线访问/etter。
  先决条件
  本书不假定读者之前具备计算机使用经验。对于数学的要求是大学代数和三角知识。当然,如果学生曾用过其他计算机语言或者软件工具,则可以更快地阅读前面的内容。
  课程结构
  出版者的话
  Engineering Problem Solving with C++, 3e
  文艺复兴以降,源远流长的科学精神和逐步形成的学术规范,使西方国家在自然科学的各个领域取得了垄断性的优势;也正是这样的传统,使美国在信息技术发展的六十多年间名家辈出、独领风骚。在商业化的进程中,美国的产业界与教育界越来越紧密地结合,计算机学科中的许多泰山北斗同时身处科研和教学的最前线,由此而产生的经典科学著作,不仅擘划了研究的范畴,还揭示了学术的源变,既遵循学术规范,又自有学者个性,其价值并不会因年月的流逝而减退。
  近年,在全球信息化大潮的推动下,我国的计算机产业发展迅猛,对专业人才的需求日益迫切。这对计算机教育界和出版界都既是机遇,也是挑战;而专业教材的建设在教育战略上显得举足轻重。在我国信息技术发展时间较短的现状下,美国等发达国家在其计算机科学发展的几十年间积淀和发展的经典教材仍有许多值得借鉴之处。因此,引进一批国外优秀计算机教材将对我国计算机教育事业的发展起到积极的推动作用,也是与世界接轨、建设真正的世界一流大学的必由之路。
  机械工业出版社华章公司较早意识到“出版要为教育服务”。自1998 年开始,我们就将工作重点放在了遴选、移译国外优秀教材上。经过多年的不懈努力,我们与Pearson,McGraw-Hill,Elsevier,MIT,John Wiley & Sons,Cengage 等世界著名出版公司建立了良好的合作关系, 从他们现有的数百种教材中甄选出Andrew S. Tanenbaum,Bjarne Stroustrup,Brain W. Kernighan,Dennis Ritchie,Jim Gray,Afred V. Aho,John E. Hopcroft,Jeffrey D. Ullman,Abraham Silberschatz,William Stallings,Donald E. Knuth,John L. Hennessy,Larry L. Peterson 等大师名家的一批经典作品,以“计算机科学丛书”为总称出版,供读者学习、研究及珍藏。大理石纹理的封面,也正体现了这套丛书的品位和格调。
  “计算机科学丛书”的出版工作得到了国内外学者的鼎力襄助,国内的专家不仅提供了中肯的选题指导,还不辞劳苦地担任了翻译和审校的工作;而原书的作者也相当关注其作品在中国的传播,有的还专程为其书的中译本作序。迄今,“计算机科学丛书”已经出版了近两百个品种,这些书籍在读者中树立了良好的口碑,并被许多高校采用为正式教材和参考书籍。其影印版“经典原版书库”作为姊妹篇也被越来越多实施双语教学的学校所采用。
  权威的作者、经典的教材、一流的译者、严格的审校、精细的编辑,这些因素使我们的图书有了质量的保证。随着计算机科学与技术专业学科建设的不断完善和教材改革的逐渐深化,教育界对国外计算机教材的需求和应用都将步入一个新的阶段,我们的目标是尽善尽美,而反馈的意见正是我们达到这一终极目标的重要帮助。华章公司欢迎老师和读者对我们的工作提出建议或给予指正,我们的联系方法如下:
  华章网站:
  电子邮件:
  联系电话:(010)
  联系地址:北京市西城区百万庄南街1号
  邮政编码:100037
  Engineering Problem Solving with C++, 3e
  计算与工程问题求解导论
  教学目标
  本章我们将简要介绍计算与工程问题解决方法,主要内容包括:
  计算的历史概览
  现代工程成就
  有关硬件和软件的讨论
  关于数字系统的讨论
  解决问题的“五步法”
  1.1历史回顾
  在19世纪初,英国数学家Charles Babbage提出了计算机的概念,当时他称其为“分析机”(Analytical Engine)。这种分析机设计成可处理十进制数字运算,包括四部分:输入设备、“仓库”或者叫做“存储单元”、处理单元以及输出设备。存储单元由很多组的盘片组成,每个盘片都沿着边沿依次刻上0~9这10个数字。处于每组最底层的盘片代表数字的个位数,紧邻其上的代表十位数,依此类推。通过对某组盘片进行排列,就可以表示一个十进制数了。
  1842年,法国工程师和数学家Luigi F. Menabrea发表了题为《Charles Babbage分析机概述――Ada Lovelace译注》(Sketch of the Analytical Engine Invented by Charles Babbage, Esq. with notes by translator Ada Lovelace)的论文。该文描述了Babbage提出的分析机设计概念,这种机器具有输入/输出设施,能够执行写在打孔纸上的程序,Babbage试图通过它解决各种问题。在本章的后续内容中我们将看到,分析机类似于我们现在使用的数字计算机,它们都有输入/输出设备、存储单元和处理单元,不过数字计算机使用二进制表示数据,而非十进制。虽然我们现在已经不再使用打孔纸编写程序,但事实上直到20世纪80年代,打孔纸才慢慢消失。
  由于曲高和寡,Babbage没能获得足够资助来完成他所设计的机器。
  分析机的设计概念不是只言片语能说清的,我在此仅说明分析机几点关键的功能,作为抛砖引玉,启发那些愿意接受和尝试其设计及概念的人。
  Charles Babbage, Augusta Ada Byron,
  Augusta Ada Byron就是那个做好了充分思想准备的人。Ada Byron是19世纪的诗人Lord Byron和Anna Isabella Milbanke的女儿。在Ada出生后不久,由于Milbanke认为Byron与她的妹妹有婚外恋并且还有些精神失常,Milbanke离开了Byron。由于害怕Ada遗传她父亲的精神病,本身就是一个业余数学家的Milbanke为Ada设计的培养方案是进行大量的数学和科学教育。1842年,Ada将Menabrea讲述分析机架构的论文从法文翻译为英文。在她的译作中包含了关于数值计算的大量评注和详细论述。
  除此之外,Ada Byron还在她译作的评论里设想了分析机在其他学科方面的诸多潜在用途:
  “例如,假设声学和乐曲的音调间的基本关系容易受到表达方式和改编的影响,那么分析机能够准确、科学地创作出具有任意复杂度或任意长度的音乐片段。”
  而Babbage则说,
770)this.width=770;' />
系列图书推荐 ¥79.00¥56.88
同类热销商品¥108.00¥81.00
订单处理配送
北京奥维博世图书发行有限公司 china-pub,All Rights Reserved

我要回帖

更多关于 问题求解 的文章

 

随机推荐