我到底是错在哪里?

gostlove 2012-09-20 12:04:07
刚看书运行一个程序,但是始终找不到错误,求答案,求解答
#include "Stdio.h"
#include "String.h" /*提供strlen()函数的原型*/
#define DENSITY 62.4 /*人的密度(单位是:英镑/每立方英尺)*/?


int main()
{
float weight,volume;
int size,letters;
char name[40]; /*name是一个有40个字符的数组*/


printf("Hi!What's your first name?\n");
scanf("%s",name);
printf("%s,what's your weight in pounds?\n",name);
scanf("%f",&weight);
size = sizeof name;
letters = strlen(name);
volume = weight / DENSITY;


printf("Well,%s,your volume is %2.2f cubic feet.\n",
name,volume);
printf("Also,your first name has %d letters,\n",letters);
printf("and we have %d bytes to store it in.\n",size);

getch();
return 0;
}

在volume = weight / DENSITY;处就一直说我错误,说非法字符在函数中,但是仔细看了下,没有非法字符啊,求解答啊!!!!!!
...全文
125 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Topseten 2012-09-20
#define DENSITY 62.4 /*人的密度(单位是:英镑/每立方英尺)*/?

这里多了一个问号
回复
Topseten 2012-09-20
你在#define处多了一个问号~~
去掉即可成功
编译器在预处理的时候会去掉注释
那么 你的 DENSITY 就相当于 62.4 ?
回复
gostlove 2012-09-20
问题已解决,谢谢大家的回答~
回复
tcm86079572 2012-09-20
3L已然无敌!
回复
xspace_time 2012-09-20
从volume = weight / DENSITY;

推理到

#define DENSITY 62.4 /*人的密度(单位是:英镑/每立方英尺)*/?

推理到 ?

因此是?的问题

因为#define DENSITY 62.4编译后就没了 编译器直接把volume = weight / DENSITY;替换为

volume = weight / 62.4;
回复
rocktyt 2012-09-20
[Quote=引用 3 楼 的回复:]

C/C++ code
scanf("%s",name);

这里name前还少一个‘&’
[code=C/C++应该是]size = sizeof(name);[/code]
[/Quote]你说的地方都不是错误,回去翻翻书吧
回复
淼哥 2012-09-20
  scanf("%s",name);

这里name前还少一个‘&’
[code=C/C++应该是]size = sizeof(name);[/code]
回复
发动态
发帖子
C语言
创建于2007-09-28

6.3w+

社区成员

C语言相关问题讨论
申请成为版主
社区公告
暂无公告