(提高篇)第一讲 项目 简单的函数运用(一)

来源:互联网 发布:mac cad格式问题 编辑:程序博客网 时间:2024/06/03 00:36

任务和代码:

【项目1-函数版星号图】
这一组的练习意在通过调用函数输出星号图,体会与理解函数的工作过程,并为其后编制自定义函数实现特定功能。
(1)补充完下面的程序,使程序输出星号下面的星号图:

#include <stdio.h>  void printstars(int m) //定义能输出一行m个星号的函数  {      int j;      for (j=1; j<=m; ++j)           printf("*");  }  int main( )  {    int n=6; //n代表要输出的行数    int i;    for(i=1; i<=n; ++i)      {          //请在下面写上调用printstars函数的语句,使程序输出右图          ______________________;          printf("\n");      }    return 0;  }  

补全后的代码:

/**Copyright (c) 2016, CSDN学院*All rights reserved.*文件名:main.c*作者:DylanLiu*完成日期:2016/10/23*版本号:V1.0**问题描述:函数的简单运用。*程序输出:。*/#include <stdio.h>void printstars(int m) //定义能输出一行m个星号的函数{    int j;    for (j=1; j<=m; ++j)         printf("*");}int main( ){  int n=6; //n代表要输出的行数  int i;  for(i=1; i<=n; ++i)    {        //请在下面写上调用printstars函数的语句,使程序输出右图        printstars(i);        printf("\n");    }  return 0;}

输出结果:

任务和代码:

(2)根据main函数中对printchs函数的调用,以及printchs的功能要求,编写printchs函数,使下面的程序能输出星号图:

//调用函数printchs输出星号图  #include <stdio.h>  //在下面写printchs函数的定义,功能是输出一行若干个指定字符  int main( )  {      int n=6; //n代表要输出的行数      int i;      //通过在下面的循环里调用printchs函数,输出右面的图      for(i=1; i<=n; ++i)      {          printchs(n-i,' ');          printchs(2*i-1,'*') ;          printf("\n");      }      return 0;  }  

补全后的代码:

/**Copyright (c) 2016, CSDN学院*All rights reserved.*文件名:main.c*作者:DylanLiu*完成日期:2016/10/23*版本号:V1.0**问题描述:函数的简单运用。*程序输出:。*///调用函数printchs输出星号图#include <stdio.h>//在下面写printchs函数的定义,功能是输出一行若干个指定字符void printchs(int n, char c){    int j;    for (j=1; j<=n; ++j)        printf("%c", c);}int main( ){    int n=6; //n代表要输出的行数    int i;    //通过在下面的循环里调用printchs函数,输出右面的图    for(i=1; i<=n; ++i)    {        printchs(n-i,' ');        //printchs(2*i-1,'*') ;//图一的实现方式        printchs(2*i-1, 'A'+i-1);        printf("\n");    }    return 0;}

输出结果:
图一:

图二:

任务和代码:

【项目2-求解分段函数的值】

#include<stdio.h>  double f(double);     //这一句是对自定义函数f的声明  int main( )  {      double x;      printf("请输入x的值:");      scanf("%lf", &x);      printf("解得:f(%.2f)=%.2f\n", x, f(x));  //调用函数f求解      return 0;  }  //将自定义函数f的定义写在下面  

提示:函数求解的结果要在main()中使用,要用return <表达式>得到返回值。
通过这个项目,体会函数利用返回值的方法。

/**Copyright (c) 2016, CSDN学院*All rights reserved.*文件名:main.c*作者:DylanLiu*完成日期:2016/10/23*版本号:V1.0**问题描述:函数的简单运用。*程序输出:。*/#include<stdio.h>#define a1 0.3#define a2 0.8 //将x1t和x2定义为符号常是,方便,易维护double f(double);     //这一句是对自定义函数f的声明int main( ){    double x;    printf("请输入x的值:");    scanf("%lf", &x);    printf("解得:f(%.2f)=%.2f\n", x, f(x));  //调用函数f求解    return 0;}//将自定义函数f的定义写在下面double f(double a){    double b=0.0;    if (a<a1){        b=0.00;    }    else if (a>=a2){        b=1.00;    }    else {        b=(a-a1)/(a2-a1);    }    return b;}

输出结果:

任务和代码:

【项目3-求最大公约数】
(1)输入两个数,并求出其最大公约数。请写出求最大公约数的函数

#include <stdio.h>  //int gcd(int x,int y) //定义用于求两数的最大公约数的函数,函数只管求值,不管输出。输出由main完成  {...}  int main()  {      int a,b,g;      scanf("%d %d", &a, &b);      g=gcd(a,b);      printf("最大公约数是:%d\n", g);      return 0;  }  

(2)在上面的程序基础上,增加函数gcds函数的声明和定义,实现求四数的最大公约数的功能。

int gcds(int x,int y,int z,int w)   //调用gcd()求四数的最大公约数  {  }  

提示:①既然gcd函数已经实现了求两数最大公约数的功能,gcds可以调用gcd分别求出两对的最大公约数,再求最大公约数的最大公约数;②修改main函数,以完成对新新定义的函数的测试。

1)

/**Copyright (c) 2016, CSDN学院*All rights reserved.*文件名:main.c*作者:DylanLiu*完成日期:2016/10/23*版本号:V1.0**问题描述:函数的简单运用。*程序输出:。*/#include <stdio.h>int gcd(int x,int y) //定义用于求两数的最大公约数的函数,函数只管求值,不管输出。输出由main完成{    int temp=0;    while (y>0){        temp=x%y;        x=y;        y=temp;    }    return x;}int main(){    int a,b,g;    scanf("%d %d", &a, &b);    g=gcd(a,b);    printf("最大公约数是:%d\n", g);    return 0;}

输出结果:

2)

/**Copyright (c) 2016, CSDN学院*All rights reserved.*文件名:main.c*作者:DylanLiu*完成日期:2016/10/23*版本号:V1.0**问题描述:函数的简单运用。*程序输出:。*/#include <stdio.h>int gcd(int x,int y) //定义用于求两数的最大公约数的函数,函数只管求值,不管输出。输出由main完成{    int temp=0;    while (y>0){        temp=x%y;        x=y;        y=temp;    }    return x;}int gcds(int a, int b, int c, int d){    int t=0;    int i=0, j=0;    i=gcd(a, b);    j=gcd(c, d);    t=gcd(i, j);    return t;}int main(){    int a,b,g;    int m, n, o, p, q;    scanf("%d %d", &a, &b);    g=gcd(a,b);    printf("两个数的最大公约数是:%d\n", g);    scanf("%d %d %d %d", &m, &n, &o, &p);    q=gcds(m, n, o, p);    printf("四个数的最大公约数是:%d\n", q);    return 0;}

输出结果:

0 0
原创粉丝点击