用C语言编写一个程序,要求输入购买商品的钱款数,输出相应的折扣率?
你这个题目无法实现的,因为折扣率应该是在知道原价的基础上的。目前给出条件不足。
这里做个假设:
如果输入是两个,折扣前和折扣的,那么可以计算,比如:
float beforePayment,afterPayment;
float percentage;
scanf( 折扣前金额=%f ,&beforePayment);
scanf( 折扣后金额=%f ,&afterPayment);
percentage=afterPayment/beforePayment;
printf( 产品折扣率为:%.2f ,percentage);//保留两位小数进行显示
这里做个假设:
如果输入是两个,折扣前和折扣的,那么可以计算,比如:
float beforePayment,afterPayment;
float percentage;
scanf( 折扣前金额=%f ,&beforePayment);
scanf( 折扣后金额=%f ,&afterPayment);
percentage=afterPayment/beforePayment;
printf( 产品折扣率为:%.2f ,percentage);//保留两位小数进行显示
C语言题目,使用SWITCH语句计算折扣率。
#include <stdio.h>
int main()
{
double je,zk;
int x;
printf( 那个输入金额(大于0): );
scanf( %lf ,&je);
x=(int)(je/100);
switch(x)
{
case 0:case 1:case 2:zk=je;break;
case 3:case 4:zk=je*0.9;break;
case 5:case 6:case 7:zk=je*0.7;break;
default:zk=je*0.5;
}
printf( 折扣率为:%f,实际支付金额:%f\n ,zk/je,zk);
return 0;
}
int main()
{
double je,zk;
int x;
printf( 那个输入金额(大于0): );
scanf( %lf ,&je);
x=(int)(je/100);
switch(x)
{
case 0:case 1:case 2:zk=je;break;
case 3:case 4:zk=je*0.9;break;
case 5:case 6:case 7:zk=je*0.7;break;
default:zk=je*0.5;
}
printf( 折扣率为:%f,实际支付金额:%f\n ,zk/je,zk);
return 0;
}
如果金额是整数,可以将金额整除100之后进行判断。如果是浮点数则需要强制转换成int后进行整除100再判断。就是写的case略多一点
switch干不了这个事,用if else。
C语言的折扣计算问题 用代码来编?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void input(){
double rate=0.045,money;
char s[]= ,temp[100];
printf( 请输入产品价格: );
scanf( %lf ,&money);
double b = money-(int)money;//提取出小数部分
gcvt(b,7,s); //将小数部分转换成字符串数组为后面判断有几个数字准备的
sprintf(temp, %lf ,b); //将小数部分依次存入字符串数组
int count=0; //存放有几位小数
int i;
for(i=2;i<=strlen(s);i++){//从2开始,因为下标0存放是字符0,下标1存放的是小数点
count++;
}
if(money<=0){
printf( 产品价格必须大于0!\n );
input();
/**如果十分位是0,则字符串长度必须减去4,
如果十分不是0,则字符串长度必须减去1,
因为字符串自动在末尾补0了*/
}else if(((int)temp[2]==48&&count-4!=2)||((int)temp[2]!=48&&count-1!=2)){
printf( 产品价格必须是两位小数!\n );
input();
}else{
if(money<=1000){
printf( 您的消费还不满足折扣要求,应付金额为:%.2f米,您只需再消费%.2f,就可以享受折扣\n ,money,(1000.01-money));
}else{
printf( 您可以享受折扣,应付的金额为:%.2f米\n ,(100-rate)*money);
}
}
}
void main(){
input();
}
#include<stdlib.h>
#include<string.h>
void input(){
double rate=0.045,money;
char s[]= ,temp[100];
printf( 请输入产品价格: );
scanf( %lf ,&money);
double b = money-(int)money;//提取出小数部分
gcvt(b,7,s); //将小数部分转换成字符串数组为后面判断有几个数字准备的
sprintf(temp, %lf ,b); //将小数部分依次存入字符串数组
int count=0; //存放有几位小数
int i;
for(i=2;i<=strlen(s);i++){//从2开始,因为下标0存放是字符0,下标1存放的是小数点
count++;
}
if(money<=0){
printf( 产品价格必须大于0!\n );
input();
/**如果十分位是0,则字符串长度必须减去4,
如果十分不是0,则字符串长度必须减去1,
因为字符串自动在末尾补0了*/
}else if(((int)temp[2]==48&&count-4!=2)||((int)temp[2]!=48&&count-1!=2)){
printf( 产品价格必须是两位小数!\n );
input();
}else{
if(money<=1000){
printf( 您的消费还不满足折扣要求,应付金额为:%.2f米,您只需再消费%.2f,就可以享受折扣\n ,money,(1000.01-money));
}else{
printf( 您可以享受折扣,应付的金额为:%.2f米\n ,(100-rate)*money);
}
}
}
void main(){
input();
}
C语言求 ②某商场给出的购物折扣率如下: 购物金额<100元,不打折; 10...
#include <stdio.h>int main(void){ float cost; float discount,pay; printf( 请输入购物金额: ); scanf( %f ,&cost);if(cost>=0)//购物金额大于等于0{ if(cost>=0&&cost<100)//购物金额为小于100 discount=1; else if(cost>=100&&cost<300)//购物金额大于等于10...