实验题目:pta第三四次作业

  设计思路:主要运用while,for,if等语句加上一些嵌套,较为简单。

  实现方法:利用好手中武器,与各种知识,进行代码编译。

一.在编译方面(思路)

  常常会漏掉一些符号,例如& ;(要注意哪些语句要分号哪些不要)像do {}while();while()后面就得带分号,同时还会忘记\n的好习惯,这对代码的呈现十分致命。而且有时还会将printf打成pritnf,这简直是蠢,可怕的是我还打了好几次,这可要注意啊,这个问题是压根不能犯的。

二.在格式方面(问题)

  我觉得在格式方面需要经验的积累吧,慢慢习惯给格式的错误后,也就犯的可能性小很多。

  但格式问题也很致命,打错一个格式整题就是错了,他人部分正确都比你分高。所以一定要检查一遍。

实验截取:

 就如这题空格没打整题没分。

实验题目:

  思路:在定义一些数值(最重要定义个sum=0),设计一个for循环,使得sum累加,从而求得sum。

这两题很典型(读题错误),他要求的是前n项和,而不是求到n为底的那一项,所以第二题的循环是 for(int i=1;i<=2*N;i+=2)

三.代码思路方面

  代码最后运行要在脑子里过上一遍,经常就是循环没搞好,弄个死循环出来,要么出现一堆答案要么一个答案都输出不了,在未来的写算法这方面,肯定是不行的,思路要清晰。

错误题:

在第四次作业稍有一点难度了,有用到了各语句的嵌套

实验题目:

这题我定义的较多的变量,这时就需要变量的英文来定义更好看,毕竟能让越多人看得懂的代码才是好代码,这题利用fabs()时记得加好头文件哦~

思路:

问题:

一.是公斤数的转换,题目所给的单位并不是统一的单位,这里要十分注意。

二.是对身材的判断,看好题目对身材标定的范围。

for(i=0;i<N;i++)
{
scanf("%d%d",&H,&w);
W=w/2.0;
a=(H-100)*0.9;
b=W-a;
if(fabs(b)<a*0.1)
{
printf("You are wan mei!\n");
}
else if(b<=(-1)*a*0.1)
{
printf("You are tai shou le!\n");
}
else
{
printf("You are tai pang le!\n");
}
}

 

 

思路:利用好数组

装睡我认为是这几次作业最难的一题,本来用数组就好了,结果用数组没解成功,一下用了个刚学的结构

刚开始打得代码:

#include<stdio.h>struct student{

char name [10];
int hu;
int xin;
};
int main()
{
int N,i;
char *j[100];
struct student students[50];
scanf("%d",&N);
for(
i=0;i<N;i++)

{
scanf("%s%d%d",&students[i].name,&students[i].hu,&students[i].xin);
}
for(i=0;i<N;i++)
{
if((students[i].hu>20||students[i].hu<15)||(students[i].xin>70||students[i].xin<50))
printf("%s\n",students[i].name);
}
return 0;
}

我觉得我也是自找麻烦。其实也就是将名字存下,也用不了那么麻烦吧。

 思路:定义字符数组来储存名字,输入多组数据,在对呼吸和脉搏进行判断,将不合格的列出。

问题:一开始想的太复杂,要如何输入,如何储存,其实冷静下来想想,会更好。

简单版:

char s[5]; //储存名字的数组
int a,b,n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%s%d%d",s,&a,&b);
if(a<15||a>20||(b<50||b>70))//核心判断
printf("%s\n",s);
}   明明很简单好吗!!!

总结:

经过这两次的训练队for循环,嵌套语句,以及数组的用法有了,更深的了解,对于这些题目不能掉以轻心。

还不会啥:对字符数组的各种输入还不够了解。

困难:逻辑还是不够清晰,不能想到各种关键的部位让自己一次通过,还需要多多练习,多写题目,把数学逻辑与编程能力结合,达到更好的解题。

 

posted on 2017-10-22 15:55  阙广壬辰  阅读(232)  评论(0编辑  收藏  举报