C语言程序设计实践(OJ)-初识函数

简介: 2964: 查闰年Description   大家知道如何判断某一年是否是闰年吗?这个问题可难坏了小编,小编在写一个查找m年到n年之间闰年的程序,却苦于判断闰年的函数不会写,据说 今天你有上机课,我就拿着这个问题来找你了–   闰年的条件是:能被4整除但不能被100整除,或能被400整除。#include <stdio.h>int leap_ye

2964: 查闰年

Description
  大家知道如何判断某一年是否是闰年吗?这个问题可难坏了小编,小编在写一个查找m年到n年之间闰年的程序,却苦于判断闰年的函数不会写,据说 今天你有上机课,我就拿着这个问题来找你了–
  闰年的条件是:能被4整除但不能被100整除,或能被400整除。

#include <stdio.h>
int leap_year(int n);   /*声明判断闰年函数*/
int main()
{
    int i;
    int cnt;    /*计数,用于每行满8个换行*/
    int m,n;
    scanf("%d %d",&m,&n);   /*输入年份*/
    cnt=0;  /*初始化*/
    for(i=m;i<=n;i++)   /*遍历m到n的每一年*/
    {
        if(leap_year(i))    /*判断i年是不是闰年*/
        {
            printf("%d",i); /*输出闰年*/
            cnt++;  /*计数+1*/
            if(cnt==8) /*够8个换行,cnt清0*/
            {
                printf("\n");
                cnt=0;
            }
            else
            {
                printf(" ");
            }
        }
    }
    return 0;
}

  主程序已给出,请自行编写leap_year函数并提交

Input
第m年和第n年

Output
m年至n年之间的所有闰年,输出结果每行8个,数据之间用空格分隔。

Sample Input
1949 2045
Sample Output
1952 1956 1960 1964 1968 1972 1976 1980
1984 1988 1992 1996 2000 2004 2008 2012
2016 2020 2024 2028 2032 2036 2040 2044

参考解答

2963: 判断三角形

Description
娄月的妹妹刘月是个初中生,某天回来兴高采烈的回家告诉姐姐他学会了如何凭借三角形三边判断三角形的形状(设两条短边为啊a,b;长边为c,判断a*a+b*b和c*c的关系),于是娄月告诉刘月,给她三条边,她可以在一秒之内知道三角形是直角,钝角还是锐角三角形,当然,这么快只有编程才能做到。以下是娄月编写的程序,由于忘记了一些知识点,三个判断三角形的函数无法完成,于是 只能请聪明的你帮忙喽。

#include <stdio.h>
#define swap(x,y){x=x+y;y=x-y;x=x-y;}
/*下面三个函数都是:是返回1,不是返回0*/
int right_triangle(double a,double b,double c); /*判断直角三角形*/
int acute_triangle(double a,double b,double c); /*判断锐角三角形*/
int obtuse_triangle(double a,double b,double c); /*判断钝角三角形*/
int main()
{
    double a,b,c;   /*三角形的三边*/
    scanf("%lf %lf %lf",&a,&b,&c);  /*输入三边*/
    /*将三边按照从小到大排好*/
    if(a>b)
        swap(a,b);
    if(a>c)
        swap(a,c);
    if(b>c)
        swap(b,c);
    /*根据if判断选择三角形*/
    if(acute_triangle(a,b,c))
        printf("锐角三角形\n");
    else if(right_triangle(a,b,c))
        printf("直角三角形\n");
    else if(obtuse_triangle(a,b,c))
        printf("钝角三角形\n");
    return 0;
}

提交时只需提交right_triangle,acute_triangle,obtuse_triangle三个函数

Input
三角形的三条边,大小未知,不必考虑构不成三角形的情况

Output
锐角三角形,直角三角形还是钝角三角形

Sample Input
3 4 5
Sample Output
直角三角形

参考解答

2966: 循环画三角形

Description
前几天,老师让良哥做一个画空心三角形的程序来取悦小师妹,可把良哥愁死了,C语言基础学得再扎实,算法不精也是硬伤呀!于是良哥又写好了主程序来找机前的你帮忙了^_^

#include <stdio.h>
void holl_triangle(int n); /*函数声明*/
int main()
{
    int n;
    scanf("%d",&n); /*输入行数n*/
    holl_triangle(n); /*调用输入n行的空心三角形的函数*/
    return 0;
}

主程序已给出,请完成holl_triangle函数并提交

Input
输入一个数字 例如 5

Output

    *
   * *
  *   *
 *     *
*********

输出如上图形

Sample Input
5
Sample Output

    *
   * *
  *   *
 *     *
*********

参考解答

2962: 日期妙算星座

Description
近几年星座运势十分流行,据说一年之中根据月份可以分出十二个星座,它们分别是:摩羯座(12.21-1.19),水瓶座(1.20-2.18),双鱼座(2.19-3.20),白羊座(3.21-4.19),金牛座(4.20-5.20),双子座(5.21-6.21),巨蟹座(6.22-7.22),狮子座(7.23-8.22),处女座(8.23-9.22),天秤座(9.23-10.23),天蝎座(10.24-11.22),射手座(11.23-12.21),猴哥对星座很感兴趣,他想快速根据自己的出生日期求出他所属的星座,请你编程帮助他吧~

#include <stdio.h>
void constellation(int year,int month,int day); /*函数声明*/
int main()
{
    int year,month,day;
    scanf("%d %d %d",&year,&month,&day);    /*输入变量*/
    constellation(year,month,day);  /*调用函数*/
    return 0;
}

主程序已给出,提交时只需提交constellation函数

Input
日期

Output
星座名称

Sample Input
2000 12 31
Sample Output
摩羯座

参考解答

1047: 求两个整数的最大公约数和最小公倍数

Description
写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。

Input
两个数

Output
最大公约数 最小公倍数

Sample Input
6 15
Sample Output
3 30
HINT
主函数已给定如下,提交时不需要包含下述主函数

/*  C代码   */
int main()
{
    int n,m,gys,gbs;
    int gcd(int a, int b);
    int lcm(int a, int b);
    scanf("%d%d",&n,&m);
    gys=gcd(n,m);
    gbs=lcm(n,m);
    printf("%d %d\n",gys,gbs);
    return 0;
}

参考解答

2405: 牛顿迭代法求根

Description
用牛顿迭代法求根。方程为ax3+bx2+cx+d=0。系数a,b,c,d的值一次为1,2,3,4,由主函数输入。求x在1附近的一个实根。求出根后由主函数输出。结果保留两位小数。

Input
系数a,b,c,d的值

Output
x在1附近的一个实根

Sample Input
1 2 3 4
Sample Output
-1.65
HINT
主函数已给定如下,提交时不需要包含下述主函数

/* C代码 */
int main()
{
 double solut(double ,double ,double ,double );
 double a,b,c,d;
 scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
 printf("%.2f",solut(a,b,c,d));;
 return 0;
}

参考解答

2965: 趣味取小数

Description
听说大家最近学得不错,教授就准备考考大家,先做出来有奖哦~

编写一个函数,取一个小数的第n(-10<=n<=16)位,当n大于0时,从小数点位置开始向右取小数部分第n位,当n小于0时,从小数点位置开始向左取整数部分的第n位。

#include <stdio.h>
#include <string.h>
int get_one_digit(double num,int n); /*函数声明*/
int main()
{
    double number;
    int n;
    int digit;  /*第n位数字*/
    scanf("%lf %d",&number,&n); /*输入数据*/
    digit=get_one_digit(number,n);  /*调用查找第n位数字并将数字返回复制给digit*/
    printf("%d\n",digit);
    return 0;
}

主程序已给出,请编写get_one_digit函数并提交该函数即可

Input
一个小数,取小数的第n位

Output
小数的第n位

Sample Input
5.5772156649015328 10
Sample Output
9

参考解答

目录
相关文章
|
14天前
|
存储 网络协议 编译器
【C语言】深入解析C语言结构体:定义、声明与高级应用实践
通过根据需求合理选择结构体定义和声明的放置位置,并灵活结合动态内存分配、内存优化和数据结构设计,可以显著提高代码的可维护性和运行效率。在实际开发中,建议遵循以下原则: - **模块化设计**:尽可能封装实现细节,减少模块间的耦合。 - **内存管理**:明确动态分配与释放的责任,防止资源泄漏。 - **优化顺序**:合理排列结构体成员以减少内存占用。
80 14
|
18天前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
39 10
|
18天前
|
存储 程序员 C语言
【C语言】文件操作函数详解
C语言提供了一组标准库函数来处理文件操作,这些函数定义在 `<stdio.h>` 头文件中。文件操作包括文件的打开、读写、关闭以及文件属性的查询等。以下是常用文件操作函数的详细讲解,包括函数原型、参数说明、返回值说明、示例代码和表格汇总。
41 9
|
18天前
|
C语言 开发者
【C语言】数学函数详解
在C语言中,数学函数是由标准库 `math.h` 提供的。使用这些函数时,需要包含 `#include <math.h>` 头文件。以下是一些常用的数学函数的详细讲解,包括函数原型、参数说明、返回值说明以及示例代码和表格汇总。
40 6
|
18天前
|
存储 C语言
【C语言】输入/输出函数详解
在C语言中,输入/输出操作是通过标准库函数来实现的。这些函数分为两类:标准输入输出函数和文件输入输出函数。
105 6
|
18天前
|
存储 缓存 算法
【C语言】内存管理函数详细讲解
在C语言编程中,内存管理是至关重要的。动态内存分配函数允许程序在运行时请求和释放内存,这对于处理不确定大小的数据结构至关重要。以下是C语言内存管理函数的详细讲解,包括每个函数的功能、标准格式、示例代码、代码解释及其输出。
48 6
|
C语言
《C语言程序设计》一 第 1 章 程序设计概述
本节书摘来自华章出版社《C语言程序设计》一 书中的第1章,第1.1节,作者:赵宏 陈旭东 马迪芳,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1168 0
|
C语言
《C语言程序设计与实践(第2版)》——第1章 C语言与程序设计概述 1.1初见C语言程序
我国古代数学家张邱建在其编写的《算经》里提出了历史上著名的“百钱买百鸡”问题:今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。凡百钱买鸡百只,问鸡翁、母、雏各几何?对于这个问题,很多读者在小学或初中的竞赛中可能都见到过,而且通常都采用不定方程求解。
1136 0
|
18天前
|
存储 Unix Serverless
【C语言】常用函数汇总表
本文总结了C语言中常用的函数,涵盖输入/输出、字符串操作、内存管理、数学运算、时间处理、文件操作及布尔类型等多个方面。每类函数均以表格形式列出其功能和使用示例,便于快速查阅和学习。通过综合示例代码,展示了这些函数的实际应用,帮助读者更好地理解和掌握C语言的基本功能和标准库函数的使用方法。感谢阅读,希望对你有所帮助!
31 8
|
18天前
|
C语言 开发者
【C语言】断言函数 -《深入解析C语言调试利器 !》
断言(assert)是一种调试工具,用于在程序运行时检查某些条件是否成立。如果条件不成立,断言会触发错误,并通常会终止程序的执行。断言有助于在开发和测试阶段捕捉逻辑错误。
27 5