下面一段程序哪错了?C语言高手进。急!!!30分酬谢!20分钟后撤消。

2024-11-24 13:05:18
推荐回答(5个)
回答1:

#include
#include
#define PAI 3.14
void zft()
{
float a,s,v;
printf("请输入正方体的边长:\n");
scanf("%f",&a);
s=6*a*a;
v=a*a*a;
printf("该正方形的面积为%f,体积为%f\n",s,v);
}
void cft()
{
float a,b,c,s,v;
printf("请输入长方体的长,宽,高(以逗号隔开):\n");
scanf("%f,%f,%f",&a,&b,&c);
s=2*(a*b+b*c+a*c);
v=a*b*c;
printf("该长方体的面积为%f,体积为%f\n",s,v);
}
void qt()
{
float r,s,v;
printf("请输入球的半径:\n");
scanf("%f",&r);
s=4*PAI*r*r;
v=(4/3)*PAI*r*r*r;
printf("该球的面积为f%,体积为f%\n",s,v);
}
void yzt()
{
float r,h,s,v;
printf("请输入圆柱体的底面半径和高(以逗号隔开):\n");
scanf("f%,f%",&r,&h);
s=2*PAI*r*r+2*PAI*r*h;
v=PAI*r*r*h;
printf("该圆柱体的面积为f%,体积为f%\n",s,v);
}
void zsmt()
{
float a,s,v;
printf("请输入正四面体的边长:\n");
scanf("f%",&a);
s=sqrt(3)*a*a;
v=sqrt(6)/9*s*a*a;
printf("该正四面体的面积为f%,体积为f%\n",s,v);
}
void main()
{
int select,loop=1;
while(loop>0)
{
printf("\n");
printf(" 简单多面体面积和体积的计算\n");
printf(" ============================\n\n");
printf(" 1、正方体\n");
printf(" 2、长方体\n");
printf(" 3、球 体\n");
printf(" 4、圆柱体\n");
printf(" 5、正四面体\n");
printf(" 0、退出系统\n");
printf(" 请输入您的选择(0-5):");
scanf("%d",&select);//输入语法错误
switch(select)
{
case 1:zft();break;
case 2:cft();break;
case 3:qt();break;
case 4:yzt();break;
case 5:zsmt();break;
case 0:printf("\n 感谢使用本系统,再见!\n\n");loop=-1;break;
default:printf("\n 您的选择有误,请重新选择!\n");
}
}
}
//主程序中的的输入语法错误

回答2:

除了楼上几位说的错误
你还要 修改一下变量的数据类型 float 改成 double 程序如下
可以运行 但是结果 有问题 你可以修改一下函数
#include
#include
#define PAI 3.14
void zft()
{
double a,s,v;
printf("请输入正方体的边长:\n");
scanf("%g",&a);
s=6*a*a;
v=a*a*a;
printf("该正方形的面积为%g,体积为%g\n",s,v);
}
void cft()
{
double a,b,c,s,v;
printf("请输入长方体的长,宽,高(以逗号隔开):\n");
scanf("%f,%f,%f",&a,&b,&c);
s=2*(a*b+b*c+a*c);
v=a*b*c;
printf("该长方体的面积为%f,体积为%f\n",s,v);
}
void qt()
{
double r,s,v;
printf("请输入球的半径:\n");
scanf("%f",&r);
s=4*PAI*r*r;
v=(4/3)*PAI*r*r*r;
printf("该球的面积为f%,体积为f%\n",s,v);
}
void yzt()
{
double r,h,s,v;
printf("请输入圆柱体的底面半径和高(以逗号隔开):\n");
scanf("f%,f%",&r,&h);
s=2*PAI*r*r+2*PAI*r*h;
v=PAI*r*r*h;
printf("该圆柱体的面积为f%,体积为f%\n",s,v);
}
void zsmt()
{
double a,s,v;
printf("请输入正四面体的边长:\n");
scanf("f%",&a);
s=sqrt(3)*a*a;
v=sqrt(6)/9*s*a*a;
printf("该正四面体的面积为f%,体积为f%\n",s,v);
}
void main()
{
int select,loop=1;
if(loop>0)
{
printf("\n");
printf(" 简单多面体面积和体积的计算\n");
printf(" ============================\n\n");
printf(" 1、正方体\n");
printf(" 2、长方体\n");
printf(" 3、球 体\n");
printf(" 4、圆柱体\n");
printf(" 5、正四面体\n");
printf(" 0、退出系统\n");
printf(" 请输入您的选择(0-5):");
scanf("%d",&select);
switch(select)
{
case 1:zft();break;
case 2:cft();break;
case 3:qt();break;
case 4:yzt();break;
case 5:zsmt();break;
case 0:printf("\n 感谢使用本系统,再见!\n\n");loop=-1;break;
default:printf("\n 您的选择有误,请重新选择!\n");break;
}
}
}

回答3:

我现在在网吧 没办法调试 你能不能说说有什么错误提示

可能是你的笔误 ,有很多地方的%f %d你写成f% d% 这肯定是错的
还有一个(4/3)可能等于1,这个我不太确定,最好换成(4.0/3.0)

其他的还没看出来 你应该把错误信息一起贴出来的 单凭用眼睛看 是很费劲的

希望对你有帮助

回答4:

把while改成if
后面scanf("d%",&select);
写错了,应该是scanf("%d",&select);

回答5:

主函数中的
scanf("d%",&select);
改为
scanf("%d",&select);

注意,应该是%d而不是d%