c语言显z作业示水果的价格,C语言作业1

一.思维导图

b0392c82a620f55ac4c639e970c40d37.png

二.语法认识

1.if—else.

if(条件1)

{

语句1;

}

else

{

语句2;

}

遇到的问题:对于if和else的两两配对理解不够,导致程序判断结构异常。

解决方法:牢记else和if的匹配准则:else与最靠近它的、没有与别的else匹配过的if相匹配。并在编辑代码时采用多层缩进的书写格式,使判断结构层次分明。

注意事项:else后无需再编辑条件,为养成良好的编辑习惯,if-else语句的大括号要打出来。

2.switch.

switch(整形表达式)

{

case 常量表达式1: 语句1;break;

case 常量表达式2: 语句2;break;

case 常量表达式n: 语句n;break;

default: 语句n+1;

}

遇到的问题:过于依赖switch,导致有时编辑出的代码质量不好,不便于检查和后期的程序维护。

解决方法:在解决问题时只在switch语句的优势十分明显时使用switch语句,慎用、智用switch语句。

注意事项:switch语句中的break语句并不是每个case语句后都必须有, 这个机制可以让switch语句的用途大大增加,所以要在switch语句中智慧的安排break的位置。

3.for.

for(表达式1; 表达式2; 表达式3)

{

循环体语句

}

遇到的问题:在某些问题中,经常会控制不好for语句的循环次数,导致运算结果错位。

解决方法:在运用for语句前,先在纸上写出程序模拟图,计算无误后再打代码。

注意事项:for语句中的表达式1只是负责在开始时提供一个起点,只运算一次。表达式2是是否再一次执行循环的判断条件。表达式3为循环提供变量,避免程序陷入死循环。

4.while.

while(循环条件)

{

循环体语句

}

注意事项:while语句是循环语句的一员,其他循环语句写出的代码几乎都能化为while语句,所以在自己读不懂某个循环代码时,将其化为while语句不失为一种方法,一来可以换一种方式看问题,二来可以增进自己对这个代码的理解度。

5.do-while.

do

{

循环体语句

}while(循环条件);

遇到的问题:此语句与前两个循环语句的循环思路并不一样,相同的条件在此循环语句中很可能会输出不一样的结果。

解决方法:理解此语句的循环原理和特殊的循环顺序,多加训练,当自己一看到问题就能判断出是否用do-while语句时,就意味着对do-while有了比较正确的理解。

注意事项:需要注意的是,do-while语句的循环顺序与前两个循环语句都不一样,先循环再判断的顺序决定了它至少循环一次的特性,这种特性在解决如“计算一个数的位数”的这种问题时显得得心应手,要善用此特性,而且要记得在语句的最后加上分号。

6.break.

switch(整形表达式)

{

case 常量表达式1: 语句1;break;

case 常量表达式n: 语句n;break;

default: 语句n+1;

}

for(表达式1; 表达式2; 表达式3)

{

语句1;

continue;

语句2;

}

注意事项:break语句可以出现在选择结构和循环结构里,但continue语句只能用在循环语句中,continue语句使用后,本次循环直接结束,不再执行continue之后的语句,直接进行下一轮循环。break语句是跳出当前执行行的语句,二者各有特色,各有各的作用。

pta分数截图

2.3,2.4分数

60fdf5d38d9fae23467f45b54f8dcbcb.png

第3章分数

09470eb71ca4681e5b61307b2c349180.png

4.1分数

66291c08794c97b4a576deefcbf1bb32.png

四.pta代码分析

1.7-8 求阶乘序列前N项和 (15 分)

本题要求编写程序,计算序列 1!+2!+3!+⋯ 的前N项之和。

输入格式:

输入在一行中给出一个不超过12的正整数N。

输出格式:

在一行中输出整数结果。

输入样例:

5

输出样例:

153

#include

int fac(int n) /*函数声明*/

{

int mul = 1;

for (int i = n; i > 0; i--)

{

mul = mul*i;

}

return mul; /*将结果返回主函数*/

}

int main()

{

int n = 0;

scanf("%d", &n);

int sum = 0;

int i = 1;

while (i <= n)

{

sum = sum + fac(i);/*调用函数*/

i++;

}

printf("%d", sum);

system("pause");

return 0;

}

问题:主要想不到程序该怎么写,还有就是函数不知道怎么定义;

2.7-5 查询水果价格 (15 分)

给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。

首先在屏幕上显示以下菜单:

[1] apple

[2] pear

[3] orange

[4] grape

[0] exit

用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0。

输入格式:

输入在一行中给出用户连续输入的若干个编号。

输出格式:

首先在屏幕上显示菜单。然后对应用户的每个输入,在一行中按格式“price = 价格”输出查询结果,其中价格保留两位小数。当用户连续查询次数超过5次、或主动输入0时,程序结束。

#include

int main()

{

printf("[1] apple\n[2] pear\n[3] orange\n[4] grape\n[0] exit\n");/*首先输出水果种类及序号*/

int i,num;

for(i=0;i<=4;i++){ /*for循环*/

scanf("%d",&num);

if(num==0){

break;

}

switch(num){ /*switch语句*/

case 1:printf("price = 3.00\n");

break;

case 2:printf("price = 2.50\n");

break;

case 3:printf("price = 4.10\n");

break;

case 4:printf("price = 10.20\n");

break;

default:printf("price = 0.00\n");

break;

}

}

return 0;

}

问题:未理解“用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0。”这句话的意思

解决方法:认真审题,并借助网上的解析完成。

3.7-1 求奇数和 (15 分)

本题要求计算给定的一系列正整数中奇数的和。

输入格式:

输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。

输出格式:

在一行中输出正整数序列中奇数的和。

输入样例:

8 7 4 3 70 5 6 101 -1

输出样例:

116

#include

int main(){

int sum=0, n=-1;

while(1){ /*小技巧,while(1)永远为真*/

if(n<=0){ /*小于零直接跳出循环*/

break;

}

if(n%2==1){ /*判断奇数*/

sum += n; /*求奇数项和*/

}

}

printf("%d\n", sum);

return 0;

}

问题:没想到怎么连续输出一系列数。

解决方法:熟悉掌握while语句以及条件判断真假。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值