这个C语言程序要怎么改?

2025年02月28日 13:23
有4个网友回答
网友(1):

#include

void main()

{float num,a,b;

printf("请输入x的值:");

scanf("%f,%f",&a,&b);

if (a>=0) {

if (a<=a&&a<5){

b=a-1;

num=1;

}

else if (5<=a&&a<10){

b=a+1;

num=2;

}

}

else num=3;

if (num==1)printf("y的值为%f\n",b);
else if(num==2) printf("y的值为%f\n",b);
else if(num==3) printf("y的值为%f\n",a);

}

首先不知道你函数功能具体要干嘛,if 和else的层可能不对,你要自己判断
然后 switch的参数不允许用浮点类型,直接改成if else的形式就可以了.
最后 switch的语法是

switch( xx){
case 1:
case 2:

default:
}
可以没有default 但是你不能省略这个大括号啊.

网友(2):

#include
void main()
{float a,b;
int num;
printf("请输入x的值:");
scanf("%f,%f",&a,&b);
if (a>=0) {
if(a<=a&&a<5){b=a-1;num=1;}//多于一句时大括号不可省略
else if (5<=a&&a<10){b=a+1;num=2;}//多于一句时大括号不可省略
}
else num=3;
switch(num)//switch()括号中的变量类型需与下面case类型一致,另外大括号不可省
{
case 1:printf("y的值为%f\n",b); break;
case 2:printf("y的值为%f\n",b); break;
case 3:printf("y的值为%f\n",a); break;
}
}
不要乱省大括号

网友(3):

if (a>=0) {
if (a<=a&&a<5) {
b=a-1;
num=1;
}else{
if (5<=a&&a<10){
b=a+1;
num=2;
}
}
}else{
num=3;
}
switch (num){
case 1:printf("y的值为%f\n",b); break;
case 2:printf("y的值为%f\n",b); break;
case 3:printf("y的值为%f\n",a); break;
}

建议:即使是初学者,即使程序写的有错误,至少代码应该写的清晰可读,方便自己也方便别人阅读。至于代码风格,选择你喜欢的就行。

网友(4):

#include 

void main()

{

  • int num;

float a,b;

printf("请输入x的值:");

scanf("%f,%f",&a,&b);

if (a>=0) 

{

if (a<=a && a<5)

  • b=a-1;

  • num=1;

  • }

else if (5<=a && a<10)

  • {

  • b=a+1;

  • num=2;

  • }

}

else num=3;

switch (num)

  • {

  •  case 1:printf("y的值为%f\n",b); break;

  •  case 2:printf("y的值为%f\n",b); break;

  •  case 3:printf("y的值为%f\n",a); break;

  • }

}

楼主你少加了花括号

还有就是 switch()里的必须是int类型。。。