首页 > 其他分享 >c语言入门4——函数

c语言入门4——函数

时间:2024-11-06 18:48:19浏览次数:6  
标签:输出 语言 int 函数 样例 整数 void 输入 入门

4-1 判断数字字符

编写函数,判断指定的字符是否是数字字符,如果是函数返回1,否则函数返回0.要求在主调函数中输入该字符,调用函数并输出判断结果。

输入格式:

在一行中给出1个字符。

输出格式:

对于给定输入的字符,输出判断结果yes或no。

输入样例:
6

输出样例:
yes

输入样例:
H

输出样例:
no

#include<stdio.h>
int ifnumber(char x);
int main(void)
{
    char x;
    scanf("%c",&x);
    if(ifnumber(x)) printf("yes\n");
    else printf("no\n");
    return 0;
}
int ifnumber(char x)
{
    if(x>='0'&&x<='9')
        return 1;
    return 0;
}

4-2 乘法口诀表

请编写程序,输出 n×n 的乘法口诀表。

输入格式

n

输出格式

n×n 的乘法口诀表。

样例输入
5

样例输出
1x1= 1
1x2= 2 2x2= 4
1x3= 3 2x3= 6 3x3= 9
1x4= 4 2x4= 8 3x4=12 4x4=16
1x5= 5 2x5=10 3x5=15 4x5=20 5x5=25

提示:乘号为小写字母 x;乘积域宽2格(右对齐);两列之间空1格;行末没有空格。

#include<stdio.h>
int main(void)
{
    int n;
    scanf("%d",&n);
    int i,j,ji;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=i;j++)
        {
            ji=i*j;
            if(i==1)
            {printf("%dx%d=%2d",j,i,ji);}
            else if(i>=2&&j!=i)
            {printf("%dx%d=%2d ",j,i,ji);}
                    else if(i>=2&&j==i)
                    {printf("%dx%d=%2d",j,i,ji);}
        }
        printf("\n");
    }
    return 0;
}

4-3 求函数的值

已知 s(x)=x−x^3/1!x3​+x^5/2!x5​−x^7/3!x7​+...。编写程序,求s(x)前10项的和,x从键盘输入。

输入样例:

从键盘输入x的值

1

输出样例:

输出结果保留2位小数

s = 0.75

 

#include<stdio.h>
#include<math.h>
double fact(int x);
int main(void)
{
    int i,j=1,flag=1,x;
    scanf("%d",&x);
    double sum=0,item=x;
    for(i=1;i<=10;i++)
    {
        sum+=item;
        flag=flag*-1;
        j=j+2;
        item=flag*pow(x,j)/(j*fact(i));
    }
    printf("s = %.2f",sum);
    return 0;
}
double fact(int x)
{
    int result=1,i;
    for(i=1;i<=x;i++)
    {
        result*=i;
    }
    return result;
}

 4-4 简单求阶乘问题

本题要求编写程序,计算N的阶乘。

输入格式:

输入在一行中给出一个不超过12的正整数N。

输出格式:

在一行中输出阶乘的值。

输入样例:

4

输出样例:

24
#include<stdio.h>
int main(void)
{
    int N,i;
    scanf("%d",&N);
    double result=1;
    for(i=1;i<=N;i++)
    {
        result*=i;
    }
    printf("%.0f",result);
    return 0;
}

 4-5 使用选择法将数组中的整数按由小到大排序

编写选择法排序函数,使用选择法将数组中的整数按由大到小排序。

输入格式:

从键盘上给大小为10个元素的整型数组随意赋值。

输出格式:

在一行中按从大到小顺序输出10个整数(每个整数按5列宽度输出)。

输入样例:

-5 28 67 0 2 7 -6 5 36 -10

输出样例:

   67   36   28    7    5    2    0   -5   -6  -10
#include<stdio.h>
int main(void)
{
    int maxindex,a[10],i,j,item;
    for(i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<9;i++)
    {
        maxindex=i;
        for(j=i+1;j<10;j++)
        {
            if(a[j]>a[maxindex])
            {maxindex=j;
            }
        }
        item=a[i];
        a[i]=a[maxindex];
        a[maxindex]=item;
        }
    for(i=0;i<10;i++)
    {
        printf("%5d",a[i]);
    }
    return 0;
}

 4-6 符号函数

请编写下面的符号函数。

题图.jpg

函数原型
double Sign(double x);
输入格式

x

输出格式

y

输入样例1
75.8

输出样例1
1

输入样例2
-87.5

输出样例2
-1

输入样例3
0

输出样例3
0
#include<stdio.h>
double Sign(double x);
int main(void)
{
    double x;
    scanf("%lf",&x);
    printf("%.0f",Sign(x));
    return 0;
}
double Sign(double x)
{
    double y;
    if(x>0) y=1;
    else if(x==0) y=0;
    else y=-1;
    return y;
}

4-7 查找整数

 

描述

在一个有n个元素的整数序列中查找一个给定的值key,输出key在此序列中第一次出现的位置。

例如:在序列[1,2,3,5,8,0,2,1,7,9,5,13]中,查找5的结果是4,表示找到了,第一次出现在位置4(第4个数).

输入

第一行包含一个正整数k,表示有k组测试数据。1 <= k <= 100。接下来是k组数据。

对于每组数据,首先包含一行两个整数,n和key,表示该组数据整数序列的元素个数n和要查找的值key。(1 <=n<=1000)

然后的一行中包含n个整数,依次给出序列的每个元素,相邻两个整数之间用单个空格隔开。

题目中所有元素和key的绝对值不超过10000。

输出

对于每组数据,若序列中存在key,输出key第一次出现的位置;否则输出-1。

每个输出单独占一行。

样例输入
3
5 3
2 3 3 6 7
4 5
1 2 3 4
1 1
1

样例输出

2
-1
1
#include<stdio.h>
int main(void)
{
    int k,n,key,i,j,index,flag=0;
    scanf("%d",&k);
    for(i=1;i<=k;i++)
    {
        int a[1001]={0};
        flag=0;
        index=0;
        scanf("%d%d",&n,&key);
        for(j=1;j<=n;j++)
        {
            scanf("%d",&a[j]);
        }
        for(j=1;j<=n;j++)
        {
            if(key==a[j]) {
                index=j;
                flag=1;
                break;
            }
        }
        if(flag)
        printf("%d\n",index);
        else printf("-1\n");
    }
    return 0;
}

4-8 函数返回三个整数的和

请编写自定义函数,功能为返回三个整数的和。主函数的功能为输入三个整数,调用你的自定义函数输出它们的和。(请至少用2种方法完成)

输入样例:

18 -299 81

输出样例:

-200
#include<stdio.h>
int sum(int,int,int);
int main(void)
{
    int x,y,z;
    scanf("%d%d%d",&x,&y,&z);
    printf("%d",sum(x,y,z));
    return 0;
}
int sum(int x,int y,int z)
{
    int sum=0;
    sum=x+y+z;
    return sum;
}

 4-9 数组翻转

给定一个长度为n的数组a和一个整数size,请你编写一个函数,void reverse(int a[], int size),实现将数组a中的前size个数翻转。

输出翻转后的数组a。

输入格式:

第一行包含两个整数n和size。1≤size≤n≤1000

第二行包含n个整数,表示数组a。

输出格式:

共一行,包含n个整数,表示翻转后的数组a。

输入样例:

5 3
1 2 3 4 5

输出样例:

3 2 1 4 5 
#include<stdio.h>
void reverse(int a[],int size);
int main(void)
{
    int n,size,a[80],i;
    scanf("%d%d",&n,&size);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    reverse(a,size);
    for(i=0;i<n;i++)
    {printf("%d ",a[i]);}
    return 0;
}
void reverse(int a[],int size)
{
    int i,k;
    i=0;k=size-1;
    while(i<=k)
    {
        int item;
        item=a[i];
        a[i]=a[k];
        a[k]=item;
        i++;k--;
    }
}

4-10 数组排序

给定一个长度为n的数组a以及两个整数 l 和 r,请你编写一个函数,void sort(int a[], int l, int r),将a[l] ~ a[r]从小到大排序。

输出排好序的数组a。

输入格式:

第一行包含三个整数n,l,r。0≤l≤r<n≤1000

第二行包含n个整数,表示数组a。

输出格式:

共一行,包含n个整数,表示排序完成后的数组a。

输入样例:

5 2 4
4 5 1 3 2

输出样例:

4 5 1 2 3 

 

#include<stdio.h>
void sort(int a[],int l,int r);
int main(void)
{
    int n,l,r,i;
    scanf("%d%d%d",&n,&l,&r);
    int a[n];
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    sort(a,l,r);
    for(i=0;i<n;i++)
    {
        printf("%d ",a[i]);
    }
    return 0;
}
void sort(int a[],int l,int r)
{
    int i,j,item;
    for(i=l;i<r;i++)
    {
        for(j=i;j<r;j++)
        {
            if(a[j]>a[j+1])
            {
                item=a[j];
                a[j]=a[j+1];
                a[j+1]=item;
            }
        }
    }
}

4-11 从1到n之间所有偶数的阶乘值

已知求阶乘的函数如下,利用这个函数,编程计算并输出1到n之间所有偶数的阶乘值。

其中n由用户从键盘输入。

double  Fact(int  n)
{
    int  i;
    double result = 1;
    for (i=2; i<=n; i++)
        result *= i;
    return result;
}

输入格式:

用户从键盘输入正整数n的值。

输出格式:

按输出样例的形式输出计算的结果。

输入样例:

9

输出样例:

2! = 2
4! = 24
6! = 720
8! = 40320
#include<stdio.h>
double Fact(int n);
int main(void)
{
    int n,i;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        if(i%2==0)
            printf("%d! = %.0f\n",i,Fact(i));
    }
    return 0;
}
double  Fact(int  n)
{
    int  i;
    double result = 1;
    for (i=2; i<=n; i++)
        result *= i;
    return result;
}

4-12 斐波那契数列

编写计算斐波那契(Fibonacci)数列的第n项函数fib(n)(n < 40)。
数列描述:
f1=f2==1;
fn=fn-1+fn-2(n>=3)。

输入格式:

输入整数 n 的值(0 < n < 40)。

输出格式:

输出fib(n)的值。

输入样例:

7

输出样例:

13
#include<stdio.h>
int fib(int n);
int main(void)
{
    int n;
    scanf("%d",&n);
    printf("%d",fib(n));
    return 0;
}
int fib(int n)
{
    int result;
    if(n==1||n==2)
        result=1;
    else if(n>=3) result=fib(n-1)+fib(n-2);
    return result;
}

标签:输出,语言,int,函数,样例,整数,void,输入,入门
From: https://blog.csdn.net/2301_80165810/article/details/143577148

相关文章

  • WPF的入门学习
    环境的搭配我们通过VS的官网来安装的VS2022,安装上C#的功能,这样就完成了环境的搭配第一个wpf工程打开vs2022,点击如图的创建新的工程。点选WPF的项目配置一个新的项目这样就完成了项目的创建项目结构介绍一下大概的项目结构在APP.XAml文件中,设置我们的窗体入口界面......
  • C++:多态中的虚/纯虚函数,抽象类以及虚函数表
    我们在平时,旅游或者是坐高铁或火车的时候。对学生票,军人票,普通票这些概念多少都有些许耳闻。而我们上篇文章也介绍过了继承与多继承。如果这些票我们都分别的去写一个类,当然很冗余,这里我们便可以去使用继承,我们假设我们的票价是由一个票价函数控制的,如果子类与父类中有着同名的......
  • AFL++实战入门与afl-fuzz流程解析(源码流程图)
    简介本项目为模糊测试的零基础教学,适合了解pwn且会使用Linux的gcc、gdb的读者。模糊测试旨在通过向程序投喂数据使其崩溃,从而获取崩溃样本以寻找程序漏洞。本文前半部分介绍AFL++的docker环境配置,帮助读者解决入门时的环境和网络问题;后半部分全面解析afl的模......
  • 入门昆仑通态触摸屏,看一看几个窗口的作用
    一、编写软件下载下载地址:McgsPro3.3.6.6354SP1.3组态软件安装包(kdocs.cn)二、用户窗口用户窗口内的界面就是我们最终要显示在触摸屏上的界面三、设备窗口用来连接PLC的,我这里暂时还未连接PLC四、主控界面主控界面的主要作用是对系统进行设计,配置系统的五、......
  • 渗透测试入门教程(非常详细),从零基础入门到精通,看完这一篇就够了_渗透测试教程
    什么是渗透测试渗透测试就是模拟真实黑客的攻击手法对目标网站或主机进行全面的安全评估,与黑客攻击不一样的是,渗透测试的目的是尽可能多地发现安全漏洞,而真实黑客攻击只要发现一处入侵点即可以进入目标系统。一名优秀的渗透测试工程师也可以认为是一个厉害的黑客,也可以被......
  • 大学新生编程入门的奇幻之旅
    《大学新生编程入门的奇幻之旅》一、引言在这个充满科技与创新的时代,编程如同一把神奇的钥匙,能够打开无数扇通往精彩未来的大门。对于当代大学生来说,掌握编程技能已经不再是一种选择,而是成为了必备的素养。然而,当新生们踏入这个广阔的编程世界时,往往会被众多的编程语言和......
  • C语言之输出函数printf以及puts
    printf和puts都是c语言的库函数,都可以输出的函数但他们也存在着一定的区别printf函数:1.功能强大:printf是一个格式化输出的函数,它可以输出各种类型的数据,并且能够按照指定的格式进行输出,例如会以10进制整数输出10。可以同时输入多组数据,灵活的控制输出的格式,如控制整数的......
  • 关于我、重生到500年前凭借C语言改变世界科技vlog.15——深入理解指针(4)
    文章目录1.回调函数的介绍2.qsort使用实例2.1qsort函数介绍2.2使用qsort函数排序整型数据2.3使用qsort排序结构数据3.qsort的模拟实现希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力!1.回调函数的介绍回调函数就是一个通过函数指针调用的......
  • 60多门编程语言学习书籍超级大合集(700+本PDF)
    60多门编程语言的学习书籍超级大合集(700+本PDF),这简直就是编程爱好者的宝藏库啊!这里面包含了各种各样的编程语言,从常见的Java、Python到相对冷门的Haskell、Lisp等等。这些书籍的质量也是参差不齐,有那种深入剖析语言特性的专业著作,也有通俗易懂适合初学者的入门教程。对......
  • Qt入门基础分享
    文章目录学习Qt语言之前的基本知识1.编程基础语法:面向对象编程(OOP):基本数据结构:了解数组、链表、栈、队列、树(如二叉树、平衡树)、图(如邻接矩阵、邻接表)等。算法:熟悉常见的排序算法(如快速排序、归并排序、冒泡排序)和查找算法(如线性查找、二分查找)。复杂度......