本文目录一览:
- 1、C语言中的开平方函数
- 2、刚学c语言 请教
- 3、c语言中sprt是什么意思
- 4、c语言高手,指针,strcpy用不成?
- 5、C语言循环里scanf用不了
- 6、C语言编译器用不了scanf();gets()之类的函数,是怎么回事啊。。。 一点运行就卡死了。
C语言中的开平方函数
b的类型声明错误,sprt函数返回double值。
DOUBLE 数据类型保存双精度浮点数。它是一种近似数字数据类型,在算术运算后容易产生舍入误差。DOUBLE 值的近似特性意味着在比较 DOUBLE 值时通常应该避免使用等式的查询。
DOUBLE 值需要 8 个存储字节。
取值范围是 -1.79769313486231e+308 到 1.79769313486231e+308,最趋近于零的数为 2.22507385850721e-308。DOUBLE 类型的值精确到 15 位有效数字,而超过第十五位就可能会产生舍入误差。
sqrt()函数是cmath标头(在早期版本中为math.h )的库函数,用于查找给定数字的平方根,它接受数字并返回平方根。
扩展资料:
float 与 double 类型区别:
float 单精度浮点数在机内占 4 个字节,用 32 位二进制描述。
double 双精度浮点数在机内占 8 个字节,用 64 位二进制描述
浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。
数符占 1 位二进制,表示数的正负。
指数符占 1 位二进制,表示指数的正负。
尾数表示浮点数有效数字,0.xxxxxxx, 但不存开头的 0 和点。
指数存指数的有效数字。
指数占多少位,尾数占多少位,由计算机系统决定。
可能是数符加尾数占 24 位,指数符加指数占 8 位 -- float。
数符加尾数占 48 位,指数符加指数占 16 位 -- double。
知道了这四部分的占位,按二进制估计大小范围,再换算为十进制,就是你想知道的数值范围。
刚学c语言 请教
disc是这段程序自定义的一个关键词,在这里起的作用就是等于b*b-4*a*c这个值,而a,b,c这三个值在这里都是键盘键入的三个浮点数.
至于sprt是个函数,也是自定义的,在这段程序没有说明,应该在程序后面还有一段关于sprt函数内容的程序,否则是运行不了的.这段程序的结果就是在屏幕上显示出运算后的X1,X2的值
c语言中sprt是什么意思
sprt在C语言中并没有什么特别的含义,既不是关键字也不是库函数。
sprt可能是编程人员定义的一个变量名或结构体名或函数名等,如:
int sprt; // 变量名
struct
{
int num;
char name[];
}sprt; // 结构体名
void sprt() // 函数名
{
printf("abc");
}
c语言高手,指针,strcpy用不成?
这是传说中的。。。野生指针。。。
指针
ptrsource
和
ptrdestionaton
都没有初始化,
也就是说你的程序在运行的时候没有分配一段空间,然后让这些指针取指向它们;
而是让这些指针指向了内存中的随机区域。
换句话说,你在非法操作内存。这样的后果,是修改了其他应用程序使用的内容,更严重的是修改了操作系统本身使用的内存(当然一般情况下会禁止你访问的那片内存区域的)。
上面的野指针是最严重的问题,你的程序还有其他问题,下面是修改后的版本:
#includestdio.h
int
main()
{
char
source[100];
char
destionation[100];
//
让
ptrsource
执行程序开辟的一块内存:
source
char
*ptrsource
=
source;
//
让
ptrdestionaton
执行程序开辟的一块内存:
destionation
char
*ptrdestionaton
=
destionation;
gets(ptrsource);
while((*ptrdestionaton++
=
*ptrsource++)!=NULL);
//
这里漏了一步:你没有为
ptrdestionaton
执向的字符串,添加字符串结束符号
'\0'
*ptrdestionaton
=
'\0';
//
这里更有问题:ptrdestionaton
已经指向了字符串的末尾,你能输出什么呢?
//
你要让
ptrdestionaton
重新执行字符串的开头才可以!!!
ptrdestionaton
=
destionation;
puts(ptrdestionaton);
}
C语言循环里scanf用不了
肯定是因为game()函数里有scanf语句,并且scanf之后没有处理scanf留下的换行符。
scanf从屏幕是读取数据时,往往不会自动读掉行尾的换行符(你输入数据后,肯定会按一个回车的对吧),所以在game函数里的最后一个scanf结束后,输入缓冲区里还一个换行符在里面,这个时候main函数里的scanf函数读到的字符就是那个换行符
解决方法:
在game函数的最后一个scanf函数后面,加上一个gets语句,用来读掉最后一个换行符即可,当然如果你的输出里敲了多个回车,就要执行多句,不懂可以贴上你的game()函数和你上面的输入,我再告诉你
C语言编译器用不了scanf();gets()之类的函数,是怎么回事啊。。。 一点运行就卡死了。
可能你的编译器被病毒感染。
我推荐你使用C-free编译器,支持C/C++