C语言实验报告

一.实验题目,设计思路,实现方法

1.实验题目

4-6  输出华氏-摄氏转换表

4-7 求平方与倒数序列的部分和

4-2-8 判断天数

2.设计思路

4-6  输出华氏-摄氏转换表

 

先判断输入数据是否合法,若不合法则直接输出。合法则循环输出相应的华氏摄氏温度表。

4-7 求平方与倒数序列的部分和

先明确题目中的函数如何用C语言表达,再构建出相应的循环语句求解即可。

4-2-8 判断天数

先判断出闰年和平年的区别,再用switch语句明确写出各月份累积的天数,最后与该月天数求和即可。

3.实现方法

4-6

本题的考察点是基本的循环语句设计。判断合法性后,就设计一个i<=high,i>=low的i作为for循环的基础,并每次都i+=2,再依次输出即可。

4-7

本体的考察点是基本的函数构建和循环语句。判断用函数sum = sum + (i*i + 1.0/i)求和后,就使用for循环累加再输出即可。

4-2-8

本体的难点在于明确各月份的天数,以及判断闰年平年,再判断输入的天数是否大于二月。所以只需要用switch语句预先累加好个月的天数即可。

二.源程序(可只截取最关键的部分)

4-6  输出华氏-摄氏转换表

if (lower <= upper) {
        printf("fahr celsius\n");
        for(fahr = lower; fahr <= upper; fahr+=2) {
        celsius = 5.0*(fahr - 32)/9.0;
        printf("%d %5.1f\n", fahr, celsius);    
        
        }
    }
    else
        printf("Invalid.\n");

4-7 求平方与倒数序列的部分和

scanf("%d %d", &m, &n);
    for(i = m; i <= n; i++) {
        sum = sum + (i*i + 1.0/i);
    }
    printf("sum = %.6f\n", sum);

4-2-8 判断天数

switch(month)
    {
    case 1:sum=0;break;
    case 2:sum=31;break;
    case 3:sum=59;break;
    case 4:sum=90;break;
    case 5:sum=120;break;
    case 6:sum=151;break;
    case 7:sum=181;break;
    case 8:sum=212;break;
    case 9:sum=243;break;
    case 10:sum=273;break;
    case 11:sum=304;break;
    case 12:sum=334;break;
    }

    sum = sum+day;
    if (year%400==0||(year%4==0&&year%100!=0))
    {
        p=1;
    }
    else {
        p=0;
    }
    
    if (p==1&&month>2)
    {
        sum++;
    }
    printf("%d",sum);

三.遇到的问题及解决方法,心得体会

这次的题目总体难度比较亲民,没有语法上的难点。需要注意的,一是函数的正确与否,应当先确定解体所需要的函数,再将其编入代码中。同时要考虑该函数的适用范围,即边界问题和一些特殊数值的问题。同时,应当谨慎书写会对结果产生影响的语句,如“printf("%d %5.lf\n")等价于(printf"%d%6.lf\n")”(变量名称略)。其次,要保证代码的整洁度问题,若代码凌乱不堪,则很容易在调试代码的时候无从下手。

posted @ 2017-10-29 10:34  郭胤鑫  阅读(950)  评论(0编辑  收藏  举报