C Primer Plus 第五版 第9章 编程练习

第二题

#include <stdio.h>
#include <stdlib.h>
void chlime(char ch,int i,int j);
int main(void) 
{
    char ch;
    int i,j;
    printf("please input a char you want to putout from i to j:\n");
    scanf("%c %d %d",&ch,&i,&j);
    chline(ch,i,j);
    return 0;
}
void chline(char ch,int i,int j)
{
    int count;
    for(count=0;count<(i-1);count++)
    putchar(' ');
    for(count=i;count<=j;count++)
    {
        printf("%c",ch);
    }
    return 0;
}

第三题

#include <stdio.h>
#include <stdlib.h>
void chlime(char ch,int num,int line);
int main(void) 
{
    char ch;
    int num,line;
    printf("please input a char you want to putout for () in ()lines:\n");
    scanf("%c %d %d",&ch,&num,&line);
    chline(ch,num,line);
    return 0;
}
void chline(char ch,int num,int line)
{
    int i,j;//i控制行,j控制列 
    for(i=0;i<line;i++)
    {

     {
      for(j=0;j<num;j++)
      putchar(ch);
     }
    printf("\n");
    }
    return 0;
}

第四题

#include <stdio.h>
#include <stdlib.h>
double average(double,double);
int main() {
    double a,b;
    scanf("%lf %lf",&a,&b);
    printf("%lf",average(a,b)); 
    return 0;
}
double average(double num_1,double num_2)
{
    double ave;
    ave=(1/num_1+1/num_2)/2;
    ave=1/ave;
    return ave;
}

第五题

#include <stdio.h>
#include <stdlib.h>
double larger_of(double,double);
int main() {
    double x,y;
    scanf("%lf %lf",&x,&y);
    larger_of(x,y);
    return 0;
}
double larger_of(double num_1,double num_2)
{
    if(num_1>num_2)
     num_2=num_1;
     else
     num_1=num_2;
     printf("x=%lf,y=%lf",num_1,num_2);
     return 0;
}

第九题

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    unsigned long n;
    int jinzhi;

    printf("Enter an integer and the base(q to quit): \n ");
    printf("*****jinzhi 意指转换进制*****\n");
    while(scanf("%lu%d", &n, &jinzhi) == 2) {
        printf("%lu's base %d equivalent:", n, jinzhi);
        to_base_n(n, jinzhi);
        putchar('\n');
        printf("Enter an integer (q to quit): \n");
    }
    printf("Done.\n");
    return 0;
}
int to_base_n(unsigned long n,int jinzhi)
{
    int r;
    r=n%jinzhi;
    if(n>=jinzhi)
       to_base_n(n/jinzhi,jinzhi);
    putchar('0'+r);
    return 0;
}

第十题

#include <stdio.h>
#include <stdlib.h>
void Fibonacci(int n);
int main(void)
{
    int n;

    printf("Enter an integer: \n ");
    printf("*****我们将为您输出斐波那契数列的前n位*****\n");
    while(scanf("%d", &n) == 1) {
        Fibonacci(n);
        putchar('\n');
        printf("Enter an integer: \n");
    }
    printf("Done.\n");
    return 0;
}
void Fibonacci(int n)
{
    int n_1=1,n_2=2,count,n_3;
    if(n>=3)
    {
        putchar('1');
        putchar(' ');
        putchar('1');
        putchar(' ');
       for(count=3;count<=n;count++)
       {
        printf("%d",n_1+n_2);
        n_3=n_1;
        n_1=n_2;
        n_2=n_3+n_2;
        putchar(' ');
       }
    }
    if(n<3)
    {
        if(n==1)
         putchar('1');
        else if(n==2)
         {
         putchar('1');
         putchar(' ');
         putchar('1');
         }

    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值