手抄代码1-15

1-15

在一个复杂的实现中,可以抽出部分实现用函数封装;在要用的地方调用。

#include <stdio.h>
float celsius(float fahr)
{
    return ((5.0/9.0)*(fahr-32.0));
}

main()
{
    float fahr;
    int lower, upper, step;
    lower = 0;
    upper = 300;
    step = 20;
    fahr = lower;
    while (fahr<=upper) {
        printf("%3.0f %.1f\n", fahr, celsius(fahr));
        fahr += step;
    }
}

打印知道的数,调用转换函数,思路清晰。

1-16

要写一个程序先把大概的过程构思出来,声明变量,函数,

#include <stdio.h>
#define MAXLINE 1000//输入最长行
int getline(char line[], int maxline);//输入行
void copy(char to[], char from[]);//保存最长行
main()
{
    int len;
    int max;
    char line[MAXLINE];
    char longest[MAXLINE];
    max = 0;
    while ((len =getline(line, MAXLINE)) > 0) {//行长大于0
        printf("%d, %s\n", len, line);
        if(len>max)//比较行长
        {
            max = len;
            copy(longest, line);
        }
    }
    if(max>0)//优化
        printf("%s\n", longest);
    return 0;
}
int getline(char s[], int lim)
{
    int c, i, j;
    j = 0;
    for(i=0;(c=getchar()) != EOF && c != '\n'; i++)
    {
        if(i<lim-2)//优化
        {
             s[j] = c;
             j++;
        }
    }
    if(c == '\n')
    {
        s[j] = c;
        j++;
        i++;
    }
    s[j] = '\0';//字符串
    return i;
}
void copy(char to[], char from[])
{
     int i;
     i = 0;
     while((to[i]=from[i]) != '\0')//to[i]的值是否为'\n'
     {
         i++;
     }
}

试着去写, 看别人怎么优化代码的。

转载于:https://my.oschina.net/dengwo/blog/683081

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值