已注解,已测试。
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于网站设计、成都做网站、闽侯网络推广、小程序设计、闽侯网络营销、闽侯企业策划、闽侯品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供闽侯建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
#include stdio.h
float discount_rate,acost; //因为子函数中需要使用,所以定义成全局变量
void if_dr_ac(float c)
{
if(c = 1000) //用级联式if else给折扣率赋值
discount_rate = 0.8;
else if(c = 500)
discount_rate = 0.85;
else if(c = 200)
discount_rate = 0.9;
else if(c = 100)
discount_rate = 0.95;
else
discount_rate = 1;
acost = c*discount_rate; //计算实际花费
printf("%f\t%f\n",discount_rate,acost); //按照主函数中格式输出结果
}
void switch_dr_ac(float c)
{
int n;
n = (int)c/100; //去掉价格的后2位,转换成整型
discount_rate = 0.8; //配合下面的 += 0.05
switch(n)
{
case 0:discount_rate += 0.05;//这样就可以不用写break了,怎么样,人才吧~
case 1:discount_rate += 0.05;
case 2:
case 3:
case 4:discount_rate += 0.05;
case 5:
case 6:
case 7:
case 8:
case 9:discount_rate += 0.05;
default:break;
}
acost = c*discount_rate;
printf("%f\t%f\n",discount_rate,acost);
}
int main(void)
{
float cost;
bed: printf("Please input the price of the goods:");
scanf("%f",cost);
if(cost 0) //这样符合实际一点
{
printf("Illegal input!");
goto bed;
}
printf("Discount rate:\tActual cost:\n"); //输出格式
//if_dr_ac(cost); //想用哪个语句实现就去掉哪个的注释
//switch_dr_ac(cost);
return 0;
}
谁教的你C语言赶快把他打一顿
看你的主函数定义
int main(void)
不需要参数 返回整型给系统 干吗??系统要坐出租车??
在谭老的书里这种小函数 都用 void main()
这是一个习惯问题 暂且不说 再说
很多if else语句 我给你说两种这种关键字的简单结构
first
if(条件)
代码;//条件结构
second
if(条件)
代码;
else
代码;//选择结构
好 下面 我们说说 if 要注意的地方
if(条件)
代码1;
代码2;
代码3;
。。。。。。
以上结构是绝对错误的 为什么呢(- -||)
if 如果条件成立
那么只执行 紧靠它的 一行或者 一段 代码
看上文 重点是一段 何为一段 不是许多句拼在一起 要有标志 一段代码的标志是一对花括号{};
如下
if(条件)
{
代码1;
代码2;
代码3;
。。。。。。
}
以上是正确的
还有注意你的编程风格
平时多注意 编译器里是怎么划分代码的
这道题是一个分段函数
你的思路和算法基本是正确的
这我就不多说了
#include stdio.h
#include stdlib.h
#include time.h
void main()
{
unsigned char time1[] = { 10, 8, 31, 9, 26 };
unsigned char time2[] = { 10, 8, 31, 9, 50 };
struct tm t1 = {0};
struct tm t2 = {0};
time_t _t1;
time_t _t2;
double diff;
t1.tm_year = time1[0] + 100;
t1.tm_mon = time1[1];
t1.tm_mday = time1[2];
t1.tm_hour = time1[3];
t1.tm_min = time1[4];
t2.tm_year = time2[0] + 100;
t2.tm_mon = time2[1];
t2.tm_mday = time2[2];
t2.tm_hour = time2[3];
t2.tm_min = time2[4];
_t1 = _mkgmtime( t1 );
_t2 = _mkgmtime( t2 );
diff = difftime(_t2, _t1 );
printf( "相差 %.0f 分钟\n", diff / 60 );
}
扩展资料:
C语言中有两个相关的函数用来计算时间差,分别是:
time_t time( time_t *t) 与 clock_t clock(void)
头文件: time.h
计算的时间单位分别为: s , ms
time_t 和 clock_t 是函数库time.h 中定义的用来保存时间的数据结构
返回值:
1、time : 返回从公元1970年1月1号的UTC时间从0时0分0秒算起到现在所经过的秒数。如果参数 t 非空指针的话,返回的时间会保存在 t 所指向的内存。
2、clock:返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数。 1单元 = 1 ms。
所以我们可以根据具体情况需求,判断采用哪一个函数。
具体用法如下例子:
#include time.h
#include stdio.h
#include stdlib.h
int main()
{
time_t c_start, t_start, c_end, t_end;
c_start = clock(); //! 单位为ms
t_start = time(NULL); //! 单位为s
system("pause");
c_end = clock();
t_end = time(NULL);
//!difftime(time_t, time_t)返回两个time_t变量间的时间间隔,即时间差
printf("The pause used %f ms by clock()\n",difftime(c_end,c_start));
printf("The pause used %f s by time()\n",difftime(t_end,t_start));
system("pause");
return 0;
}
因此,要计算某一函数块的占用时间时,只需要在执行该函数块之前和执行完该函数块之后调用同一个时间计算函数。再调用函数difftime()计算两者的差,即可得到耗费时间。
假设函数:
这样代价函数,是非凸函数,如果使用梯度下降,几乎不能收敛到最全局最小值,所以我们需要寻找其他的是凸函数的代价函数,这样就可以使用之前学过的算法了。
(这里有一门知识,凸性分析,凸优化)
代价函数
可以这样做是因为y要么是1,要么是0。
当假设h(θ)=1时,如果y是1,那么cost=0;如果y=0,那么cost=∞。
当假设h(θ)=0时,如果y时1,那么cost=∞;如果y=0,那么cost=0。
cost的用法:总结“在……花费……”的句型。
cost造句:
1、It cost the better part of his pay.这件东西花了他工资的一大半。
2、The restoration to the castle took a year and cost a lot of money.修复城堡花了一年时间和大量的钱。
3、Painted walls look much more interesting and doesn't cost much彩绘墙壁看上去更有趣而且花费也不高。
4、It's going to cost me over$ 100,000 to buy new trucks.买几辆新卡车将花掉我10万多美元。
5、The cost of a loaf of bread has increased five-fold.一条面包的价钱增长了4倍。