Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
双精度C程序设计中的指针_C_Pointers_Double_Precision - Fatal编程技术网

双精度C程序设计中的指针

双精度C程序设计中的指针,c,pointers,double,precision,C,Pointers,Double,Precision,好吧,这是我必须做的,但我不能让它工作: a) 更改为浮点而不是整数。并将0.3指定为“u”的起始值 b) 使用双精度而不是整数。将0.3x10^45作为“u”的起始值 c) 使用字符而不是整数。将“u”的起始值指定为“C” #包括 主要() { INTU=3; INTV; int*pu; int*pv; pu=&u; v=*pu; pv=&v; printf(“\nu=%d&u=%X pu=%X*pu=%d”,u,&u,pu,*pu); printf(“\n\nv=%d&v=%X pv=%X*

好吧,这是我必须做的,但我不能让它工作:

a) 更改为浮点而不是整数。并将0.3指定为“u”的起始值

b) 使用双精度而不是整数。将0.3x10^45作为“u”的起始值

c) 使用字符而不是整数。将“u”的起始值指定为“C”

#包括
主要()
{
INTU=3;
INTV;
int*pu;
int*pv;
pu=&u;
v=*pu;
pv=&v;
printf(“\nu=%d&u=%X pu=%X*pu=%d”,u,&u,pu,*pu);
printf(“\n\nv=%d&v=%X pv=%X*pv=%d”,v,&v,pv,*pv);
}

如果有人能修改我的代码来完成上述工作,我将不胜感激。谢谢

这个问题正在测试一些东西。首先你知道你的类型吗?您应该知道浮点数字是用
float
声明的,双精度数字是用
double
声明的,字符是用
char
声明的

其次,您需要知道如何为这些不同的类型分配文字值。对于float literal,您可能需要使用
0.3f
,因为如果没有该后缀,默认情况下它将是双精度的(尽管在本文中它不会有任何区别)。对于double,您需要知道如何使用科学记数法(文字值应为
0.3e45
)。我希望这个字对你来说是相当明显的

最后,希望您了解
printf
格式规范中使用的各种类型字符。单精度和双精度数字都使用相同的类型字符,但您可以根据需要选择
%e
%f
%g
。我倾向于使用
%g
作为一个很好的通用选择,但我的猜测是,他们迫使您使用
%e
作为双精度(因为这迫使使用科学记数法),并且可能使用
%f
作为浮点-这取决于您所学的内容。对于您使用的字符
%c


另外,请注意,您应该只替换格式字符串中的
%d
类型字符。
%X
值用于输出指针的十六进制表示形式(
&u
pu
)。指针不会仅仅因为所指向的类型已更改而更改为浮点值或字符-当您将其写入时,地址始终是整数。

您期望的结果是什么?你得到了什么?这段代码会崩溃吗?我想修改它,不是为了期望某些结果,而是为了演示双精度的使用。如果没有预期的结果,那么如何评估代码的“正确性”?OP的教授/助教将评估代码的“正确性”。@MartinJames对于某种结果,一定还有一些预期的标准。“演示双精度的使用”不是一个精心设计的编程问题或作业<代码>双d=1.234是使用双精度的演示
#include <stdio.h>
main ()
{
int u = 3;
int v;
int *pu;
int *pv;
pu = &u;
v = *pu;
pv = &v;

printf("\nu=%d     &u=%X    pu=%X  *pu=%d", u, &u, pu, *pu);
printf("\n\nv=%d    &v=%X    pv=%X  *pv=%d", v, &v, pv, *pv);
}