目录
纸上得来终觉浅,觉知此事要躬行。C语言的学习不仅要了解理论知识,更要不断练习,在练习中成长。下面我将给出几到例题,并分析讲解,帮助我们在实践中了解C语言。
KiKi非常喜欢网购,在一家店铺他看中了一件衣服,他了解到,如果今天是“双11”(11月11日)则这件衣服打7折,“双12” (12月12日)则这件衣服打8折,如果有优惠券可以额外减50元(优惠券只能在双11或双12使用),求KiKi最终所花的钱数。
数据范围:衣服价格满足 1≤val≤100000
一行,四个数字,第一个数表示小明看中的衣服价格,第二和第三个整数分别表示当天的月份、当天的日期、第四个整数表示是否有优惠券(有优惠券用1表示,无优惠券用0表示)。 注:输入日期保证只有“双11”和“双12”。
一行,小明实际花的钱数(保留两位小数)。(提示:不要指望商家倒找你钱)
看完本题,先想思路。本题主题就是一个条件判断的程序,输入的参数分别是商品价格、当天日期(只能是双十一和双十二中的一个),最后一个表示有无优惠卷,有就为1,没有就是0。
下面开始编程:
- #include
-
- int main()
- {
- float a = 0;
- int b = 0;
- int c = 0;
- int d = 0;
- scanf("%f", &a);
- scanf("%d", &b);
- scanf("%d", &c);
- scanf("%d", &d);
- int i = 0;
- float val = 0;
-
- if (b == 11 && c == 11)
- {
- val = a * 0.7;
- if (d == 1)
- {
- val = val - 50;
- }
- }
- if (b == 12 && c == 12)
- {
- val = a * 0.8;
- if (d == 1)
- {
- val = val - 50;
- }
- }
- if(val<0)
- {
- val=0;
- }
- printf("%.2f", val);
- return 0;
- }
输出成功。
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的带空格直角三角形图案。
多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。
针对每行输入,输出用“*”组成的对应长度的直角三角形,每个“*”后面有一个空格。
注意,这是需要多组输入的。解此题只需要用到循环即可。
下面看代码:
- #include
- int main()
- {
- int a = 1;
- int i = 0;
- int j = 0;
- while (a) {
- scanf("%d", &a);
- for (i = 0; i < a; i++)
- {
- for (j = 0; j < a; j++)
- {
- if (i + j >= a - 1)
- {
- printf("* ");
- }
- else
- {
- printf(" ");
- }
- }
- printf("\n");
- }
- }
- return 0;
- }
通过循环,只需要判断何时需要打印‘* ’,何时需要打印“空格”,即可。
小乐乐喜欢数字,尤其喜欢0和1。他现在得到了一个数,想把每位的数变成0或1。如果某一位是奇数,就把它变成1,如果是偶数,那么就把它变成0。请你回答他最后得到的数是多少。
输入包含一个整数n (0 ≤ n ≤ 109)
输出一个整数,即小乐乐修改后得到的数字。
此题需要我们知道,如何将一个整型数据的每一位进行判断,如何去判断每一位数的奇偶性。
对于奇偶判断,只需要%2,值为1则为奇数,值为0则为偶数。整型数组每次‘/10’,少一位。比如123这个数字,一次'/10',就变成12,再'/10',就变成1。利用这个性质,我们写出如下代码:
- #include
- #include
- int main()
- {
- int n = 0;
- scanf("%d", &n);
- int i = 0;
- int a = 0;
- for (i = 0;i < 9;i++)
- {
- if (n % 2 == 1)
- {
- a = a + (int)pow(10, i);
- }
- n = n / 10;
- }
- printf("%d", a);
- return 0;
- }
验证输出:
每天保持练习,持之以恒,我们的C语言技术才会越发熟练,不要小瞧每一次练习。