国内有什么c语言论坛,那种车国内外价格相当人关注多的,解决问题强的。

共有 2021 人关注过本帖
标题:c判断三个点在一条直线上有什么问题?
等 级:新手上路
帖 子:10
结帖率:100%
&&问题点数:0&&回复次数:4&&&
c判断三个点在一条直线上有什么问题?
#include&stdio.h&
int main(void)
int x1,x2,x3,y1,y2,y3,;double i,j,k,h,m,n;
i=(x1-x2);j=(x2-x3);k=(x1-x3);h=(y1-y2);m=(y1-y3);n=(y2-y3);
&&&&&&printf(&please input three coordinates:&);
&&&&&&scanf(&%d,%d %d,%d %d,%d&,&x1,&y1,&x2,&y2,&x3,&y3);
if((h/i==n/j&&h/i==m/k)
&&& printf(&in a line&);
printf(&not in a line&);
&&& return(0);
搜索更多相关主题的帖子:
等 级:论坛游民
帖 子:36
专家分:42
#include&stdio.h&
int main(void)
int x1,x2,x3,y1,y2,y3,;double i,j,k,h,m,n;
//i=(x1-x2);j=(x2-x3);k=(x1-x3);h=(y1-y2);m=(y1-y3);n=(y2-y3);&&你把这行代码放这儿的时候x1,x2等等还没有赋值。到你后边用if的时候就不是i=(x1-x2);j=(x2-x3);k……算出的数了,这是计算语句应该在确定了各个数的值之后再算,所以给你放后边了
&&&&&&printf(&please input three coordinates:&);
&&&&&&scanf(&%d %d %d %d %d %d&,&x1,&y1,&x2,&y2,&x3,&y3);&&你原来的输入语句里边有几个逗号。你输入的时候肯定是没输入逗号的,按你原来scanf(&%d,%d %d,%d %d,%d&,&x1,&y1,&x2,&y2,&x3,&y3);的写法,在输入坐标的时候应该是1,2 2,4 4,8.。所以把你那几个逗号去了。就好了。。。编译通过。
&&&&&&i=(x1-x2);j=(x2-x3);k=(x1-x3);h=(y1-y2);m=(y1-y3);n=(y2-y3 );
if(h/i==n/j&&h/i==m/k)
&&& printf(&in a line&);
printf(&not in a line&);
&&& return(0);
等 级:新手上路
帖 子:10
回复 2楼 xiaoseqingch
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
三点坐标用整数表示?你这个程序设计上就有问题。
授人以渔,不授人以鱼。
等 级:蒙面侠
帖 子:1864
专家分:4121
我也做了下程序代码:#include&stdio.h&
int main()
&&& int x1,x2,x3,y1,y2,y3;
&&& double i,j,h,n;
&&& printf(&please input therr coordinates:&);
&&& for(;;)&&/*循环输入,确保,x1,x2,x3的值不相等,否则h/i,n/j无意义*/
&&& scanf(&%d,%d,%d,%d,%d,%d&,&x1,&x2,&x3,&y1,&y2,&y3);
&&& if(x1==x2||x1==x3||x2==x3)
&&&&&&&&printf(&error,re-input please&);
&&& else break;/*<font color=#,x2,x3确保不相等后跳出循环*/
&&& i=(x1-x2);j=(x2-x3);
&&& h=(y1-y2);n=(y2-y3);
&&& if(h/i==n/j) /*个人感觉比较一次就行*/
&&&&&&&&printf(&in a line&);
&&& printf(&not in a line&);
&&& return <font color=#;
}本人新手,说错勿怪
认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
版权所有,并保留所有权利。
Powered by , Processed in 0.023981 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved学完C语言基础部分,还要学什么?
[问题点数:20分]
学完C语言基础部分,还要学什么?
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。推荐一本C语言编程入门的书,思路清晰,可-中国学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
推荐一本C语言编程入门的书,思路清晰,可
来源:互联网 发表时间: 17:10:28 责任编辑:鲁晓倩字体:
为了帮助网友解决“推荐一本C语言编程入门的书,思路清晰,可”相关的问题,中国学网通过互联网对“推荐一本C语言编程入门的书,思路清晰,可”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:推荐一本C语言编程入门的书,思路清晰,可操作,无错误(不要txt)。,具体解决方案如下:解决方案1:
PDF可以?我觉得你还是买一本实体书比较好
解决方案2:
为什么不要视频
相关文章:
最新添加资讯
24小时热门资讯
Copyright &#169; 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号C语言有哪些鲜为人知的特性?
查看: 1699|
评论: 0|原作者: Lingfeng Ai|来自:
摘要: 本文摘编自 Quora 的一个热门问答贴。 请在linux系统下测试本文中出现的代码
  译注:本文摘编自 Quora 的一个热门问答贴。 请在linux系统下测试本文中出现的代码&的回复:switch语句中的case&关键词可以放在if-else或者是循环当中123456789101112131415161718192021switch (a){&&&&case 1:;&&&&&&&&&&&&if (b==2)&&&&&&{&&&&&&&&case 2:;&&&&&&&&&&&&&&}&&&&&&else case 3:&&&&&&{&&&&&&&&&&&&&&&&for (b=0;b&10;b++)&&&&&&&&{&&&&&&&&&&case 5:;&&&&&&&&&&&&&&&&&&}&&&&&&}&&&&&&break;&&&&&case 4:&的回复:1. 声明紧随用途之后理解声明有一条很简单的法则,不过不是什么“从左向右”这种没道理却到处宣传的法则。这一法则的观点是,一个声明是要告诉你,你所声明的对象要如何使用。例如:1234int *p; int a[5]; int *ap[5]; int (*pa)[5]; 更多详情请看这里:&2. 指定初始化:在C99之前,你只能按顺序初始化一个结构体。在C99中你可以这样做:123456struct Foo {&&&&int x;&&&&int y;&&&&int z;};Foo foo = {.z = 3, .x = 5};这段代码首先初始化了foo.z,然后初始化了foo.x.&foo.y&没有被初始化,所以被置为0。这一语法同样可以被用在数组中。以下三行代码是等价的:123int a[5] = {[1] = 2, [4] = 5};int a[] = {[1] = 2, [4] = 5};int a[5] = {0, 2, 0, 0, 5};3. 受限指针(C99):restrict关键词是一个限定词,可以被用在指针上。它向编译器保证,在这个指针的生命周期内,任何通过该指针访问的内存,都只能被这个指针改变。比如,在123456int f(const int* restrict x, int* y) {&&&&(*y)++;&&&&int z = *x;&&&&(*y)--;&&&&return z;}编译器可能会假设,x和y&所指的并不是同一个int对象,因为如果它们指向了同一个对象,则x的值将可以通过y修改,这正是你保证不会发生的。因此,将允许编译器来优化f,就好像函数原本被写做如下这样:123int f(const int* restrict x, int* y) {&&&&return *x;}如果你违反协议向f传递两个指向同一int对象的指针时,将产生未定义行为。我猜想,引入这一特性最初的动机之一是想让C语言在数值计算时可以Fortran一样快。在Fortran 中,默认假定数组不会重叠,因此只有你通过restrict&限定词来显式的告诉编译器数组不能重叠,编译器才能在C语言中进行这样的优化。4. 静态数组索引(C99)在123void f(int a[static 10]) {&&&&}中,你向编译器保证,你传递给f&的指针指向一个具有至少10个int&类型元素的数组的首个元素。我猜这也是为了优化;例如,编译器将会假定a&非空。编译器还会在你尝试要将一个可以被静态确定为null的指针传入或是一个数组太小的时候发出警告。在123void f(int a[const]) {&&&&}你不能修改指针a.,这和说明符int * const a.作用是一样的。然而,当你结合上一段中提到的static&使用,比如在int a[static const 10]&中,你可以获得一些使用指针风格无法得到的东西。5. 泛型表达式(C11)这个表达式会在编译期间根据控制表达式的类型,在一个含有一个或多个备选方案的集合中做出选择。下面这个例子可以很好的说明这一切:12345#define cbrt(X) _Generic((X), \&&&&&&&&&&&&&&&&&&&&&&&&long double: cbrtl, \&&&&&&&&&&&&&&&&&&&&&&&&default: cbrt, \&&&&&&&&&&&&&&&&&&&&&&&&float: cbrtf \&&&&&&&&&&&&&&&&&&&&&&&&)(X)因此,如果expr&是long double类型的,&cbrt(expr)&被转换为cbrtl(expr),如果是float类型 则转换为cbrtf(expr)&,或是转换为cbrt(expr),如果是其他不同的类型(比如说double&)。注意,_Generic&可以用在宏以外的地方,但是用在宏里面最好因为C不允许你进行函数重载。6.&wint_t&(C99)我相信大家都知道wint_t&但是&wint_t&到底是个什么鬼东西呢?好吧,记住fgetc&实际上并不会返回&char&。它会返回int。显然这是因为fgetc&必须返回返回一个与其他char&都不同的值,也就是EOF,表示到达文件末尾。基于相同的原因,fgetwc&并不返回wchar_t。它会返回一个类型,叫做wint_t&可以表示所有无效wchar_t&类型,包括WEOF,来表示到达文件末尾。下面这段C程序可以准确的打印2的747次方而不产生误差。这是为什么呢?程序:123456#include &stdio.h&#include &math.h&int main() {&&&&printf("%.0f\n",pow(2,747));&&&&return 0;}输出结果:1答案:这个问题包含两个部分。其一,2的次方可以在double&中被准确的保存而不产生任何精度上的损失(这一结论直到2^1023都是对的,再往后就会产生上溢,得到一个正无穷的值)另外一部分,很多人猜测是语言实现中的某些特殊情况导致的,但是实际上并非如此。的确,当输入的数据可以被2的某高次方整除时,有一部分代码被执行了,但是本质上这只是通常实现工作时的一个副作用。基本上,printf&在打印数字(任何类型)的时候只是做了从二进制到十进制的转换。并且由于结果对于浮点数可能会过大,printf&的内部实现包含和使用一个大整型实现,尽管在C中并没有大整型这种变量(在gcc源代码中,vfprintf.c&和dtoa.c&中包含了很多转换,如果你想要了解可以一看。)如果你尝试打印3^474,程序:123456#include &stdio.h&#include &math.h&int main() {&&&&printf("%.0f\n",pow(3,474));&&&&return 0;}输出结果:结果仍然是一个很大的数且位数也正确,但是这一次却不够精确。这里会产生一个相对误差,因为3^474不能以双精度浮点数准确的表示。准确的数应该是这样的846603471…译注:在linux系统上是可以的,在windows 64位上后面会有很多0我发现一些C语言特性或者是小技巧,我觉得只有很少的人知道。1. 不使用加号来使数字相加因为printf()&函数返回它所打印的字符的个数,我们可以利用这一点来使数字相加,代码如下:12345678910111213141516#include&stdio.h&;&int add(int a,int b){&&&&if(if(a!=0&&b!=0))&&&&&&&&return printf("%*c%*c",a,'\r',b,'\r');&&&&else return a!=0?a:b;}&int main(){&&&&int A = 0, B = 0;&&&&printf("Enter the two numbers to add\n");&&&&scanf("%d %d",&A,&B);&&&&printf("Required sum is %d",add(A,B));&&&&&return 0;}利用位操作同样也可以做到:1234567int Add(int x, int y){&&&&if (y == 0)&&&&&&&&return x;&&&&else&&&&&&&&return Add( x ^ y, (x & y) && 1);}2. 条件运算符的用法通常我们都这样使用它:x = (y & 0) ? 10 : 20;但是同样也可以这样用:(y & 0 ? x : y) = 20;3. 在一个返回值为void&的函数中写一个return&语句123456789static void foo (void) { }static void bar (void) {return foo(); }&int main (void) {bar();return 0;}4. 逗号表达式的使用通常逗号表达式会这样使用:1234for (int i=0; i&10; i++, doSomethingElse()){&&}但是你可以在其他任何地方使用逗号表达式:1int j = (printf("Assigning variable j\n"), getValueFromSomewhere());每条语句都进行了求值,但是表达式的值是最后一个语句的值。5. 将结构体初始化为0struct mystruct a = {0};这将把结构体中全部元素初始化为06. 多字符常量int x = 'ABCD';这会把x的值设置为0×(或者0×,取决于架构)7.&printf&允许你使用变量来格式化格式说明符本身12345678#include &stdio.h&&int main() {&&&&int a = 3;&&&&float b = 6.412355;&&&&printf("%.*f\n",a,b);&&&&return 0;}*&符号可以达到这一目的希望这些可以帮助到大家此致敬礼你可以在奇怪的地方使用#include如果你写:1234567#include &stdio.h&&void main(){&&&&printf#include "fragment.c"&&&&&&& }且fragment.c&包含:1("dayum!\n");这完全没有问题。只要#include&包含完整可解析的C表达式,预处理器并不在意它放在什么位置。1.&printf&格式限定符中指定(POSIX扩展语法)printf("%4$d %3$d %2$d %1$d", 1, 2, 3, 9); //将会打印9 3 2 12. 在scanf&中忽略输入输入scanf("%*d%d", &a);// 如果输入1 2,则只会得到23. 在switch&中使用范围(gcc扩展语法)12345switch(c) {&&case 'A' ... 'Z': &&break;&&case 1 ... 5 : }4. 使用前缀ob&来限定常数,使其被当做二进制数(gcc扩展语法)1printf("%d",0b1101); 5.完全正确的最短的C语言程序1译注:虽然编译没有error但是却不能执行scanf()的力量假定我们有一个数组char a[100]读取一个字符串:scanf("%[^\n]\n", a);//表示一直读取直到遇到'\n',并且忽略掉'\n'读取字符串直到遇到逗号:scanf("%[^,]", a);//但是这次不会忽略逗号如果你想忽略掉某个输入,使用在%&后使用*,如果你想要得到John Smith&的姓:1scanf("%s %s", temp, last_name); 123scanf("%s", last_name);scanf("%s", last_name);12scanf("%*s %s", last);顺便提一句,你应该非常小心的使用scanf&因为它可能会是你的输入缓冲溢出!通常你应该使用fgets&和sscanf&而不是仅仅使用scanf,使用fgets&来读取一行,然后用sscanf&来解析这一行,就像上面演示的一样。~-n&等于n-1-~n&等于n+1原因:当我们写-n时,实际上是以补码形式储存,所以-n&可以写成~n + 1,吧整个式子放在上面表达式的前面你就能明白原因了。
刚表态过的朋友 ()
上一篇:下一篇:
快毕业了,没工作经验,
找份工作好难啊?
赶紧去人才芯片公司磨练吧!!c语言与C++有什么不一样,哪个好呀,如过要学习哪个有用呀????????它是用在什么方面的呢???_百度知道
c语言与C++有什么不一样,哪个好呀,如过要学习哪个有用呀????????它是用在什么方面的呢???
提问者采纳
在最后我祝愿所有坚持学习C&#47。那么是不是C就不重要了。再跑到这里来发表些狗屁文章了,本人非常不赞同、类型这些东东已不是什么新鲜事了?不学TC2,但我依然很怀念当年的劳动付出,有时会产生使初学者莫名其妙的结果?我学编程有三年了吧:学了C再学C++有障碍吗。
如果还是有人想学习C&#47,真正的面向对象化的语言恐怕只有Java才算得上!我依然记得当年整天进行TC编程的辛苦。
所以相对于C,精华的精华。
三,如谭老爷子所说,门槛高,要记住C语言是对变量类型最敏感了的,其实都很重要的:不。
再提高一点、虚函数,好象没有人愿意再去学那些老的,细细品来,C++并非完全面向对象化,引入了重载,为C平反,如类,毕竟WINDOWS的内部的很多东西都能直接被VC调用,相对于原来的C还有所加强,来实现什么动态联编?
答?我们现在一步步地来分析一下
一,因为此时的你不在是简简单单的学习,尽量搞清楚每一个问题.
这是我学习C&#47,delete操作符等…………
七!算法是程序设计的基础、操作符重载,最好尽量不要用它,没有面向过程的思想。刚开始学VC,但是我有几句话必须讲讲,面向过程和面向对象,一个bit的去抠,和上面同样的道理:对象粒度的选择,我都是靠自己,好的设计如果没有好的算法:C++能实现C所不能的功能吗,“C 加上好的设计”也能写出非常好的东西,但只有把握了基本概念才能把握整体脉络。
3.如果要学好C++;C++是成为VC;C++的朋友们成功。而且、异常处理等等玩艺儿。
问、对象接口的设计和继承, 他们是你通往成功的道路?
答、中,数个回合、继承?
答,C++下可以实现C语言的一切功能:至少我还没有看见谁有此症状,最后勉勉强强才算做个差不多, 你对 Windows&#47、类, 有一些小问题我还是乐意解答的,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。很多人都想一口吃个胖子,只有一个计算机四级证和一个高程证;这本书中所有的例子都可以用做锻炼思路的基石。引用对于初学者就更容易产生混淆。
答,才能居高临下。
对语言本身而言,这个东东会让他们觉得C++很难。
2.C是C++的子集,你们能理解的了VC6。成绩也不算多. 免得有些同志说我破坏中国软件人才的发展。我觉得一个好的编程思想,是不想初学者陷入到语言越新越好的误区. 去思考课后的例子对你的编程很有帮助。没有人来教我,还是学C++!
C++与C有什么不同呢,到面向对象设计,使得对变量类型的重要性产生淡化,我想我已经基本入门,至少也属降龙十八掌等级的东东,你会轻松得很,我真的犹如笨蛋一般。
四:以问答形式, 你的水平有了显著的提高,会让你手足无措,必须得一个byte,怎么可能去编程呢,这会使初学者潜意识里对C语言的变量类型的重要性产生淡化、函数的重载。
5.几本好书,很多东西都是一环扣一环。
所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样,但我觉得我在学VC的时候还有很多的不明白的地方,那些最基本的语言都不懂的人; C语言程序设计 &gt!真是奇怪,典型的模仿四不象,BCB下看看C是一个结构化语言,初学者可能根本用不着,况且、下)。要形成自己的编程风格。学好VC再去学其他的高级WINDOWS编程. 你看的例子越多?
我的感觉是,看不懂…………,但多数都是比较老的书呦,也是比较困难的,以及虚函数。
问,但依然有很多的困惑, 使无数程序员了解了C语言,初学者学函数的重载好像没什么坏处,是因为“ 设计这个概念已经被融入到C++之中 ”,绝对比你去学一门计算机语言好重要的多。0。
几点学习建议。
4.不要妄想速成,不知道哪个是引用、误区:它的重点在于算法和数据结构。
二,cin这个东东有点儿不怎么方便. 你会发现. 我认为是值得一买的,然后就大彻大悟?从上文可以看出. 他会对你的编程很有帮助的;C++的朋友们有一些帮助;C++的一点心得,我宁愿做你的徒弟,而就语言本身而言; 同志有骗钱的嫌疑( 我手头就有一本几乎一模一样的英文书 ), 我想他的功劳也是不可磨灭的,非学C不可,建议初学者最好别在如VC,我从不报班,数据封装;C++的话,需要考虑的是诸如,再去学其他的语言岂能不简单.
我认为虽然 &quot,学习什么语言都会很轻而易举,就是程序错误太多,首要考虑的是如何构造一个对象模型、流操作符,旧的编程语言了,童叟无欺,典型的高级应用。类的封装使得初学者对程序产生厌倦:学完了C再学C++是不是很容易、继承。无论学C:我学完了C一定还要学C++才能编程吗:C++比C好在哪里,错,它是我所见到的国内少有的一本好书,但是对于初学者,如,哪个是变量. 不要找一些连自己都搞不清的问题去做,四处吓摸。
国内也有几本好书。
六,那么是什么样的一个子集,实用价值很低………………:
问, 是他把这本入门手册引入中国,一样不行,毕竟我获得了我想获得的一切——编程思想!
今天我这么肯定的在这里讲这番话。在我看来!。C程序的设计首要考虑的是如何通过一个过程。但你们能学的懂吗,本来这个题目就不是很严谨,C是C++的子集;潭浩强&quot:至少我还没有发现……
问,要点的要点.
当你基本能够掌握了上一本书中例子后,学好C&#47,写几个大点的程序。
问,而且价格公道, 他对大家的编程是很有帮助的,我就是从来不用引用,变量的类型在C语言里的重要性是不言而喻的,那种自动化的代码生成:
1.基本概念很重要. 在&lt?如果你真的能。我怎么可能把某个类的类型的指针去指向另一个不同类型但是是继承关系的类?建议多去看看有关WINDOWS编程的书,而在C++中的C(我称它为“C+”),谭老爷子的书好倒是好,从头做起;DOS 了解的越多?比如程序设计思想……
答,我想那真是轻而易举,在C++中, 但是只要努力就没有什么问题,再到VC,也具有强大的功能:那要看你是不是真正的学完了C语言,同样值得学习;C++是不重要的:第二对。学VC的半年多来:完全没必要.
想学好C++,它是一个累赘,第一问错,C++包含了更丰富的“设计”的概念,都TMD是经典中的经典,它的基本概念和设计方法相对比较容易理解,C++更是拓展了面向对象设计的内容,毫无头绪,而对于C++:
机械工业出版社的那套“计算机科学丛书”从C到C++,花花绿绿的界面,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),就面临一个项目,除非万不得已. 但是我认为学习C&#47, 但是,让这个模型能够契合与之对应的问题域?
答:学了C再学C++又要重头开始吗!。强烈推荐清华周之英的《现代软件工程》(上,但是,要学就想学最新的, ( 大量阅读例子程序是学习C&#47,我从C到C++就一个星期的睡觉前的时间看两眼书。
问, 你会茅塞顿开。之所以说C++比C更先进:C++是面向对象化的而C是面向过程化的,基本概念都是第一位的, 重要的是如何锻炼你的思路. 不要小看一个一个简单的例子、组合与继承的使用等等问题!,引用是C++中最臭屁的东西了,晕…………
………………还有些东东我就不发表评论了. 开始可能是看不懂,在VC里也依然需要面向过程。
最近在网上看到了很多人的学习方法,BCB平台下写程序, 你就要自己找一些例子程序去看! 同时感谢阅读过我文章的同志们,一应俱全, 希望对没有被我吓到而要继续学习C&#47, C实现了C++中过程化控制及其它相关功能,dos),包括所有的成绩在内、引用,在C中更多的是算法的概念,类我并不说它有什么不好. 当你看过几个较大的例子之后,BCB高手的必由之路:更加符合软件工程学
问:new。一个好的编程思想在你的头脑中一旦形成,感到不适和麻烦。最好先找一片空地(unix. 最好能够再看一些关于系统知识的书籍;C++的捷径 ),你首先就可以对WINDOWS有个全新的认识?
答、模板和包容器类等等、内联函数。0等那些较早的优秀编程语言,这种狗屁东西除了看起来深奥,初学者可从它入手,但C是C++的一个自洽子集,只能靠我自己,怎么可能去理解那些最新的编程语言
其他类似问题
为您推荐:
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 国内那种茶叶最好销售 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信