编写程序提示用户输入一个身高(厘米),并分别以厘米和英寸为单位显示该值,允许有小数,可重复输入身高,直至输入一个非正值

int main(void)
{
	float height,inches;
	int feet;
	feet = height / CMFEET;
	inches = height * CMinch;
	
	printf("enter a height(cm)\n");
	scanf("%f",&height);
	while (height>0)
	{
		
		printf("%f cm = %d feet,%f inches\n", height, feet, inches);
		printf("enter next height");
		scanf("%f", &height);
	}
	
	printf("done!");

	return 0;
}

最开始这段代码,在vs2022上无法运行,报如下错误,最主要的是局部变量未初始化

1e80167c53f14260b37fae90cef7057a.png后来,在站内人工智能助手“C知道”那里得知,height未初始化时用于随后的运算语句中,会导致编译器报错,无法运行代码,人工智能的解决方法是e6ea299308d345bba3dbf0805375f391.jpg

但是我没有按这方法重写代码,只是调整了下原来代码的顺序,把运算语句放到while循环体中

/*编写程序提示用户输入一个身高(厘米),并分别以厘米和英寸为单位显示该值,允许有小数,
可重复输入身高,直至输入一个非正值*/
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define CMFEET 30.48
#define CMinch 2.54

int main(void)
{
	float height,inches;
	int feet;

	
	printf("enter a height(cm)\n");
	scanf("%f",&height);
	while (height>0)
	{
		feet = height / CMFEET;
		inches = height * CMinch;
		printf("%f cm = %d feet,%f inches\n", height, feet, inches);
		printf("enter next height\n");
		scanf("%f", &height);
	}
	
	printf("done!");
	return 0;
}

然后代码运行正常了

其实输出也不正确,下面这个才正却的

/*编写程序提示用户输入一个身高(厘米),并分别以厘米和英寸为单位显示该值,允许有小数,
可重复输入身高,直至输入一个非正值*/
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define CMFEET 30.48//1英尺=30.48厘米
#define CMinch 2.54//1英寸=2.54厘米

int main(void)
{
	float height,inches;
	int feet;

	
	printf("enter a height(cm)\n");
	scanf("%f",&height);
	while (height>0)
	{
		feet = height / CMFEET;//截断
		//inches = height * CMinch;
		inches = (height - CMFEET * feet) / CMinch;//截断后的feet*进率 要比height小,用二者差值可算出丢失的部分
		printf("%1f cm = %d feet,%1f inches\n", height, feet, inches);
		printf("enter next height\n");
		scanf("%f", &height);
	}
	
	printf("done!");
	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值