一个C语言中遇到的问题

代码如下
#include<stdio.h>
const dm_peer_m=10;
int main(viod)
{
float length,width,area,length_m,length_dm,width_m,width_dm;

printf("Please input your room\'s length and width here and we can caculate your room\'s area\nnow you can input your room\'s length here:\nmeter:");
scanf("%f",&length_m);
printf("decimetre:");
scanf("%f",&length_dm);
printf("Please input your room\'s width here:\nmeter:");
scanf("%f",width_m);
printf("decimetre:");
scanf("%f",&width_dm);
length=length_m+length_dm/dm_peer_m;
width=width_m+width_dm/dm_peer_m;
area=length*width;
printf("With the data you input we can caculate your room occupy %.2f square meter",area);
return 0;
}
当输入到第三个数字确认之后,程序崩溃,这是什么原因啊,求解释,极其解决方法

#include<stdio.h>
const dm_peer_m=10;
int main(void)  //手误 void
{
    float length,width,area,length_m,length_dm,width_m,width_dm;

    printf("Please input your room\'s length and width here and we can caculate your room\'s area\nnow you can input your room\'s length here:\nmeter:");
    scanf("%f",&length_m);
    printf("decimetre:");
    scanf("%f",&length_dm);
    printf("Please input your room\'s width here:\nmeter:");
    scanf("%f",&width_m);   //你少些写取地址符了
    printf("decimetre:");
    scanf("%f",&width_dm);
    length=length_m+length_dm/dm_peer_m;
    width=width_m+width_dm/dm_peer_m;
    area=length*width;
    printf("With the data you input we can caculate your room occupy %.2f square meter",area);
    return 0;
}

 

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-30
scanf("%f",width_m);

改为
scanf("%f",&width_m);

出了问题,自己先好好检查,这种一眼就看出来的。
第2个回答  2013-07-30

scanf("%f",&length_m);
   printf("decimetre:");
   scanf("%f",&length_dm);
   printf("Please input your room\'s width here:\nmeter:");
   scanf("%f",width_m);
   printf("decimetre:");
   scanf("%f",&width_dm);

在每一个scanf( 后面加入 getchar();  来清除键盘缓冲区里的 回车符等。这样就可以了

    scanf("%f",&length_m);
    getchar();  
    printf("decimetre:");
   scanf("%f",&length_dm);
   getchar();
   printf("Please input your room\'s width here:\nmeter:");
   scanf("%f",&width_m);
   getchar();
   printf("decimetre:");
   scanf("%f",&width_dm);
   getchar();

第3个回答  2013-07-30
第三个输入写错了,你少写了取地址 符&,所以,程序崩溃。修改一下:
scanf("%f",&width_m);//加上取地址符
第4个回答  2013-07-30
#include<stdio.h>
const dm_peer_m=10;
int main(viod)
{
float length,width,area,length_m,length_dm,width_m,width_dm;

printf("Please input your room\'s length and width here and we can caculate your room\'s area\nnow you can input your room\'s length here:\nmeter:");
scanf("%f",&length_m);
printf("decimetre:");
scanf("%f",&length_dm);
printf("Please input your room\'s width here:\nmeter:");
scanf("%f",&width_m);//*************缺少地址符
printf("decimetre:");
scanf("%f",&width_dm);
length=length_m+length_dm/dm_peer_m;
width=width_m+width_dm/dm_peer_m;
area=length*width;
printf("With the data you input we can caculate your room occupy %.2f square meter",area);
return 0;
}

c语言常见问题有哪些
1、书写标识符时,忽略了大小写字母的区别。2、忽略了变量的类型,进行了不合法的运算。3、将字符常量与字符串常量混淆。4、忽略了等号与双等号的区别。5、忘记加分号。6、输入变量时忘记加地址运算符。7、输入数据的方式与要求不符。8、输入字符的格式与要求不一致。9、输入输出的数据类型与所用格式...

C语言的运行出现不了的问题是什么问题??
环境问题:代码在不同的操作系统、编译器或硬件平台上可能存在差异,导致代码无法正常运行。可以检查编译器和操作系统的兼容性,或在特定的环境中运行代码。逻辑问题:代码逻辑存在问题,导致代码无法正确执行。可以检查代码逻辑是否正确,是否存在死循环、递归深度过大等问题。综上,C语言代码运行不出现象可能...

经验分享:C语言初学者常见的 10个错误!
首先,语言使用错误常常发生在符号的使用上。在中文和英文中转换时,可能会不小心将英文符号用成中文符号,例如中文分号“;”占用了两个字节,而英文分号“;”只占用一个字节。因此,在进行编程时,需要特别注意符号的正确使用,避免因符号错误而产生的编译错误。其次,忘打分号是另一个常见的错误。在C...

C语言编程最常见的15个错误
但C语言中,“=”是赋值运算符,“==”是关系运算符。如:if (a==3) a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。5.忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2 ...

求c语言一些常见问题,
但C语言中,“=”是赋值运算符,“==”是关系运算符。如:if (a==3) a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。5.忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2 编译时,编译程序在“...

关于C语言在编译时常出现的错误有哪些?
1、fatal error C1010: unexpected end of file while looking for precompiled header directive。寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有#include "stdafx.h")2、fatal error C1083: Cannot open include file: 'R…….h': No such file or directory 不能打开包含文件“R…...

一个C语言问题?
3、数据区:数据区中存的是静态变量、全局变量、常量。问题7:static和extern区别是什么?1、static是静态变量:编译阶段会分配内存,只能在当前文件内使用,只初始化一次;2、extern是全局变量:在C语言下默认的全局变量前都隐藏的加了该关键字,只是我们平常看到的没有这个extern关键字而已。问题8:什么...

在C语言中运行程序时最常出现的有那些错误?
l 类型不匹配的问题。(例如:有float a=3.5,但输出的时候printf(“a=%d”,a);则屏幕上会显示出a=0.00000或者提示其它运行错误)。基本原则是:float对应%f, int对应%d, char对应%c。 l 个数不匹配。无论是哪个函数,都可以有n个参数,第一个永远是“”括起来的内容,...

c语言学习中遇到的问题,求解决
这里有一个问题,你怎么知道最大值一定比0大呢?所以要定义max=num[0]include<stdio.h>int main(){int num[10];int i, t,j;for(i=0;i<10;i++){scanf("%d",&num[i]);}for(i=0;i<10;i++){printf("%d ",num[i]);}printf("\\n");for(i=0;i<=8;i++)for(j=i+1;...

(C语言)请问出了什么问题导致最后运行出来没有下半部分的内容?
主函数里面的question是声明不是调用 把void去掉就好了

相似回答
大家正在搜