#include<stdio.h>
#include<math.h>
int main()
{
int n;
double money,a,b;
printf("请输入入园人数:");
scanf("%d",&n);
if(n>30){
a=120;
printf("%.2f\n",a); }
else if(n=30)
{
money=4*n;
printf("%.2f\n",a); }
else
money=5*n;
printf("%.2f\n",money);
b=money;
if(a<b)
printf("第一个方案更合算,共花费%.2f元\n",a);
else
printf("第二个方案更合算,共花费%.2f元\n",b);
return 0;
}
怎么样可以避免花费为0
你的代码有点语法错误,改正之后加了判断逻辑,望采纳!
#include<stdio.h>
#include<math.h>
int main()
{
int n;
double money,b;
double a = 0.0;
printf("请输入入园人数:");
scanf("%d",&n);
if(n>30){
a=120;
printf("a:%.2f\n",a); }
else if(n==30)
{
money=4*n;
printf("a:%.2f\n",a); }
else
{money=5*n;
printf("b:%.2f\n",money);
b=money;}
if(a<b && a > 0.0)
printf("第一个方案更合算,共花费%.2f元\n",a);
else
printf("第二个方案更合算,共花费%.2f元\n",b);
return 0;
}
给你改了下,是不是{}少写了
#include<stdio.h>
#include<math.h>
int main()
{
int n;
double money,a,b;
printf("请输入入园人数:");
scanf("%d",&n);
if(n>30){
a=120;
printf("%.2f\n",a); }
else if(n=30)
{
money=4*n;
printf("%.2f\n",a); }
else{
money=5*n;
printf("%.2f\n",money);
b=money;
}
if(a<b)
printf("第一个方案更合算,共花费%.2f元\n",a);
else
printf("第二个方案更合算,共花费%.2f元\n",b);
return 0;
}
你输入21,对a没有进行赋值,a的值默认为0,a当然小于b,输出自然是0。还有else if(n==30)你少写了一个“=”。
题目发一下,不然没得选。