第五次作业

改错题

输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增加2℉。

错误信息

错误原因:for循环的条件之后加了;
改正方法:去掉;
错误信息:

错误原因: for循环体没有大括号,for条件中用了逗号
 改正方法:for循环体加上大括号,for条件改用分号隔离
错误信息:

错误原因:fahr是整数常量却用%f来表示输出,计算摄氏度时先5/9导致变0
改正方法:%3.0f改成%d,celsius = 5 /9 * (fahr - 32.0);中9挪到最后面
错误信息:

错误原因:题目要求每次循环后fahr加二,程序中是加一
改正方法:把循环条件中fahr++改成fahr=fahr+2

学习总结

1.定义变量,整形i,num,odd,even
2.赋值,使odd值为0,even值为0,i值为1
3.输入num的值
4.如果num和2求余得0,那么even的值加一
如果不是这样,则odd的值加一
5.i的值加一
6.输入num的值
7.如果num和2求余得0,那么even的值加一
如果不是这样,则odd的值加一
8.i的值加一
9.......
10.i的值加一(此时i结果得10)
11.输入num的值
12.如果num和2求余得0,那么even的值加一
如果不是这样,则odd的值加一
13.输出even和odd的值
输入十个数,输出其中偶数和奇数分别有多少

1.i=3,j=3.单独使用无区别
2.2和3.i的话,先输出后加一,j旳话,先加一后输出。说明++放到变量前面是先加一再
执行当前语句,放到后面则相反。i和j都会是3。

1.1和2和4相同,3是竖着排列的星。
2.和缩格无关,和{}有关。
3.如果有大括号旳话,大括号之中的就是循环体,如果没大括号的话,截止到第一个分号为止,都是循环体
4.234都是正确的缩进格式

当限制循环次数时,用for比较好,毕竟看着显整齐,当跳出循环的条件不是循环次数时,也就只能用while和do while了。while可以一次都执行循环体直接跳出,但do while和rapter里的循环都至少
执行一次循环体。

实验总结

统计学生平均成绩与及格人数

一.本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内
二.

三.

#include<stdio.h>
int main()
{
	    int n,i,grade,count;
    double average;
    scanf("%d",&n);
    average=0;
    count=0;
    for(i=1;i<=n;i++)
    {
	    scanf("%d",&grade);
	    average=average+grade*1.0/n;
	    if(grade>=60)
	    {
		    count=count+1;
	    }
	    
	    
    }
    printf("average = %.1f\ncount = %d",average,count);
    return 0;
}

四.此题没发现问题
五.

到底是不是太胖了

一.据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重 − 标准体重 | < 标准体重×10%)。已知市斤是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。
二.

三.

#include<stdio.h>
int main()
{
    int n,i,h,w;
    double b;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
	    scanf("%d %d",&h,&w);
	    b=(h-100)*0.9*2;
	    
	    if((w-b)*10<b&&(w-b)*10>b*(-1))
	    {
		    printf("You are wan mei!\n");
	    }
	    else if(w>b)
	    {
		    printf("You are tai pang le!\n");
	    }
	    else
	    {
		    printf("You are tai shou le!\n");
	    }
    }
    return 0;
}

四.
问题1:全部输出you are 太瘦了
原因:b是公斤,与w做计算应变成市斤
解决办法:给b赋值时乘2
问题2:pta显示答案错误
原因:每句输出内容后没加\n
解决办法:每句输出后加\n
问题3:pta显示部分正确
原因:十进制小数换算成二进制时成无限不循环小数,系统用二进制计算时会产生误差
解决办法:避免出现任何等于号,如小于等于
五.

统计学生成绩

一.
本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:
•大于等于90分为A;
•小于90且大于等于80为B;
•小于80且大于等于70为C;
•小于70且大于等于60为D;
•小于60为E。
二.

三.

#include<stdio.h>
int main()
{
  int shu,grade,i,A=0,B=0,C=0,D=0,E=0;
  scanf("%d",&shu);
  for(i=1;i<=shu;i++)
  {
    scanf("%d",&grade);
    if(grade>=90)
    {A=A+1;}
    else if(grade>=80)
    {B=B+1;}
    else if(grade>=70)
    {C=C+1;}
    else if(grade>=60)
    {D=D+1;}
    else
    {E=E+1;}
  }
  printf("%d %d %d %d %d",A,B,C,D,E);

  return 0;

}

四.
问题:pta显示编译错误
原因:for循环条件两端用逗号分隔
解决方法:把逗号改成分号
五.

找出最小值

一.本题要求编写程序,找出给定一系列整数中的最小值。
二.

三.

#include<stdio.h>

int main()
{
  int i,shu,a,b=32767;
  scanf("%d",&shu);
  for(i=1;i<=shu;i++)
  {
    scanf("%d",&a);
    if(a<b)
    {
      b=a;
    }
    else
    {
      a=b;
    }
  }
  printf("min = %d",a);
  return 0;
}

四.
问题:pta显示编译错误
原因:一开始写的b=INT下划线MIN,但忘了开头要补什么
解决方法:课件没找到,百度也没找到,然后直接百度了最大值是多少并填上去,后来上了课才知道是limit
五.

博客互评

1
2
3

posted @ 2017-11-12 21:05  哔莉莉莉莉  阅读(666)  评论(0编辑  收藏  举报