C语言编程求救,在线等答案!!!!!!

#include "stdio.h"
main()
{
int x;
float price;
double discount,total;
printf("输入顾客购买商品数量: ");
scanf("%d",&x);
printf("输入顾客购买商品价格: ");
scanf("%f",&price);
if (x<5)
printf("对不起,不打折");
else if (5<=x && x<10)
discount=price*0.01;
total=price-discount;
printf("打折后应付价格为: %f\n",total);
else if (10<=x && x<20)
discount=price*0.02;
total=price-discount;
printf("打折后应付价格为: %f\n",total);
else if (20<=x && x<30)
discount=price*0.04;
total=price-discount;
printf("打折后应付价格为: %f\n",total);
else
discount=price*0.06;
total=price-discount;
printf("打折后应付价格为: %f\n",total);
}
这是一道普通的买东西按数量打折的题目,我运行程序格式什么都是对的,但是就是 第2个和第3个else if,最后一个else3个行都显示错误,
显示的英文是:illegal else without matching if
请高手帮我看看,谢谢了,方便解释下那个英文是什么意思
不对啊,else if 是不需要加大括号的
而第一个if后面只有一个语句 大括号可以省略。。。。

不加大括号程序知道你的else if 到哪里结束?
如果是只有一句的话大括号可以省略
illegal else without matching if意思就是else 缺少if
没有if不能单独使用else

#include "stdio.h"
main()
{
int x;
float price;
double discount,total;
printf("输入顾客购买商品数量: ");
scanf("%d",&x);
printf("输入顾客购买商品价格: ");
scanf("%f",&price);
if (x<5)
printf("对不起,不打折");
else if (5<=x && x<10)
{discount=price*0.01;
total=price-discount;
printf("打折后应付价格为: %f\n",total); }
else if (10<=x && x<20)
{discount=price*0.02;
total=price-discount;
printf("打折后应付价格为: %f\n",total); }
else if (20<=x && x<30)
{discount=price*0.04;
total=price-discount;
printf("打折后应付价格为: %f\n",total); }
else
{discount=price*0.06;
total=price-discount;
printf("打折后应付价格为: %f\n",total); }
}
温馨提示:内容为网友见解,仅供参考
无其他回答

C语言编程问题!!高手救命,在线等答案
printf("<%02d> [0x%08X] %.2f [0x%08X] %.2f \\"%s\\"\\n",stu[i].num, &(stu[i].c),stu[i].c,&(stu[i].java),stu[i].java,stu[i].name);} }

C语言问题求解,在线等,急!!!
1、根据题意每天从区间1~N中,依次深度-1,遇到某个深度0时停止作业,所修改的区间就是当日作业区间。2、独立函数实现一天作业(workForDay)。参数flag为1显示作业过程,如不需要传0。3、init函数为输入并返回动态数组。include <stdio.h> include <malloc.h> int len=0;\/\/路面长度 int *init(...

C语言求救~~~
include<stdio.h>void main(){ int a,b,c,temp,max;printf("请输入3个整数\\n"); scanf("%d %d %d",&a,&b,&c); temp = (a>b)?(a):(b); max = (temp>c)?(temp):(c);printf("三个数的最大值为%d\\n",max);} ...

C语言的高手进来帮帮忙啊……求救中……
void printd (int n){ char temp[32];int i = 0;int j = 0;char t;while (n){ temp[i++] = n%10 +48;n\/=10;j++;} temp[j--] = 0;i=0;while (i<j){ t = temp[i];temp[i] = temp[j];temp[j] = t;i++;j--;} printf("%s",temp);} main(){ printd(...

c语言编辑程序求救
{ int age;printf("请输入孩子的年龄<2-6岁>: ");scanf("%d", &age);switch(age){ case 2:printf("%d岁,进入小班\\n",age);break;case 3:printf("%d岁,进入小班\\n",age);break;case 4:printf("%d岁,进入中班\\n",age);break;default :printf("%d岁,进入大班\\n",age);break;...

求救。。用C语言怎样编
include <stdlib.h> void reset(int status[],int i,int cnt);int main(){ int cnt;printf("请输入灯的数量:");scanf("%d",&cnt);\/\/...对cnt的验证省去.int status[cnt];int i;for(i=0;i<cnt;i++){ status[i]=1;\/\/先全置灯,重置的时候,第一个人会全部灭灯 } for(i=1;...

c语言程序求救 1.字符串程序设计: 写程序将用户输入的由数字字符和非...
不用给分了,我没时间给你写程序了,只能把大体算法告诉你:::数字在ASC2中是连续的。是048到057,可以写一个循环程序在字符串中把在这个范围内的字符复制到一个数组中,然后输出数组就可以了。如果还不行可以找我,我试试帮你。

紧急求救 C语言
int board[MAX];void show_result(){ int i;for(i=0;i<MAX;i++)printf("(%d,%d)",i,board[i]);printf("\\n");} int check_cross(int n){ int i;for(i=0;i<n;i++){ if(board[i]==board[n]||(n-i)==abs(board[i]-board[n]))return 1;} return 0;} void put_...

C语言在线等答案 求帮忙
6:设int a=0,b=0,c=0,d;则计算d=a--&&b--||c--;后,d,a,b,c的值是多少? 0 -1 0 -1 在这个算式中先计算a--,运算过程是先用0进入表达式在自减1,当0进入a--&&b--后明显前面为假,b--就不运算了,所以a为-1而b为0;||运算前面为假所以还要继续运算后面的C-...

c语言在线答疑,求高人指导~~~谢谢了~~~
第五个:这个是函数的递归调用。第一次输入a,并递归到下一层输入b,再递归到下一层输入 条件符合退出递归,输出当前层的c,即#,退回上一层输出当前c,即b,再退回上一层输出当前c,即a。这就是ab##ba。第六个:这个是由于define中的M+M没有加()。表达式经编译器编译后就是M+M*M+M*5...

相似回答