#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
void LengthMenu() { //排序子菜单
printf("****************************************\n");
printf("*\t\t1.英寸转化\t\t*\n");
printf("*\t\t2.英尺转化 \t\t*\n");
printf("*\t\t3.毫米转化 \t\t*\n");
printf("*\t\t4.厘米转化 \t\t*\n");
printf("*\t\t5.分米转化 \t\t*\n");
printf("*\t\t6.米转化 \t\t*\n");
printf("*****************************************\n");
}
void Lenhgth()
{
double q,n;
char in,ft,mm,cm,dm,m;
char a[6];
int i;
printf("请输入要算的数:\n");
scanf("%lf",&q);
printf("请输入您的选择:\n");
scanf("%d",&i);
switch(i)
{
case 1://in
printf("输入想要转化成的单位:\n");
scanf("%s",&a);
if(strcmp(a,"in")==0) n=q;
else if(strcmp(a,"ft")==0) n=q*12;
else if(strcmp(a,"mm")==0) n=q*0.0394;
else if(strcmp(a,"cm")==0) n=q*0.394;
else if(strcmp(a,"dm")==0) n=q*3.937;
else if(strcmp(a,"m")==0) n=q*39.37;
printf("%lf in=%lf %s",q,n,a);
break;
case 2://ft
printf("输入想要转化成的单位:\n");
scanf("%s",&a);
if(strcmp(a,"in")==0) n=q/12;
else if(strcmp(a,"ft")==0) n=q;
else if(strcmp(a,"mm")==0) n=q*0.00328;
else if(strcmp(a,"cm")==0) n=q*0.0328;
else if(strcmp(a,"dm")==0) n=q*0.328;
else if(strcmp(a,"m")==0) n=q*3.28;
printf("%lf ft=%lf %s",q,n,a);
break;
case 3://mm
printf("输入想要转化成的单位:\n");
scanf("%s",&a);
if(strcmp(a,"in")==0) n=q/0.0394;
else if(strcmp(a,"ft")==0) n=q/0.00328;
else if(strcmp(a,"mm")==0) n=q;
else if(strcmp(a,"cm")==0) n=q*10;
else if(strcmp(a,"dm")==0) n=q*100;
else if(strcmp(a,"m")==0) n=q*1000;
printf("%lf mm=%lf %s",q,n,a);
break;
case 4://cm
printf("输入想要转化成的单位:\n");
scanf("%s",&a);
if(strcmp(a,"in")==0) n=q/0.394;
else if(strcmp(a,"ft")==0) n=q/0.0328;
else if(strcmp(a,"mm")==0) n=q/10;
else if(strcmp(a,"cm")==0) n=q;
else if(strcmp(a,"dm")==0) n=q*10;
else if(strcmp(a,"m")==0) n=q*100;
printf("%lf cm=%lf %s",q,n,a);
break;
case 5://dm
printf("输入想要转化成的单位:\n");
scanf("%s",&a);
if(strcmp(a,"in")==0) n=m/3.937;
else if(strcmp(a,"ft")==0) n=m/0.328;
else if(strcmp(a,"mm")==0) n=m/100;
else if(strcmp(a,"cm")==0) n=m/10;
else if(strcmp(a,"dm")==0) n=m;
else if(strcmp(a,"m")==0) n=m*10;
printf("%lf dm=%lf %s",m,n,a);
break;
case 6://m
printf("输入想要转化成的单位:\n");
scanf("%s",&a);
if(strcmp(a,"in")==0) n=q/39.37;
else if(strcmp(a,"ft")==0) n=q/3.28;
else if(strcmp(a,"mm")==0) n=q/1000;
else if(strcmp(a,"cm")==0) n=q/100;
else if(strcmp(a,"dm")==0) n=q/10;
else if(strcmp(a,"m")==0) n=q;
printf("%lf m=%lf %s",q,n,a);
break;
default:
printf("输入错误请重新输入");
}
}
int main()
{
LengthMenu();
Lenhgth();
return 0;
}
c语言长度转换报错是什么原因呢
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- MarkHan_ 2023-03-07 14:26关注
该回答引用GPTᴼᴾᴱᴺᴬᴵ
该代码有多处语法错误和拼写错误,但最引人注目的是 Lenhgth(); 这一行,因为其中有一个中文分号 “;”,而 C 语言中并没有中文分号。建议将这行代码中的中文分号替换为英文分号 “;”,即 Lenhgth();。
·
此外,该代码中还有一些可能导致运行错误的细节问题,如 scanf("%s",&a) 可能会导致缓冲区溢出,应该使用 scanf("%s",a) 来避免这个问题。此外,为了避免未定义行为,建议将 mm、cm、dm、m 这些变量的类型改为 char,或者直接使用 char 类型的变量。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥20 测距传感器数据手册i2c
- ¥15 RPA正常跑,cmd输入cookies跑不出来
- ¥15 求帮我调试一下freefem代码
- ¥15 matlab代码解决,怎么运行
- ¥15 R语言Rstudio突然无法启动
- ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
- ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法