首页 > 编程语言 >程序设计基础I-实验7 函数(函数题)

程序设计基础I-实验7 函数(函数题)

时间:2024-10-11 09:20:10浏览次数:6  
标签:函数 int double 样例 long 实验 程序设计 include

6-1 sdut-C语言实验-计算组合数

计算组合数。C(n,m),表示从n个数中选择m个的组合数。
计算公式如下:
若:m=0,C(n,m)=1
否则, 若 n=1,C(n,m)=1
否则,若m=n,C(n,m)=1
否则 C(n,m) = C(n-1,m-1) + C(n-1,m).

函数接口定义:

在这里描述函数接口。例如: int fun(int n,int m);

其中 nm 都是用户传入的参数(0 <= m <= n <= 20)。

裁判测试程序样例:


#include <stdio.h>
#include <stdlib.h>
int fun(int n,int m);

int main()
{
 int t,n,m,i;
 scanf("%d",&t);
 for(i=1;i<=t;i++)
 {
     scanf("%d %d",&n,&m);
     printf("%d\n",fun(n,m));
 }
    return 0;
}

/* 请在这里填写答案 */

输入样例:

在这里给出一组输入。例如:

3
2 1
3 2
4 0

输出样例:

在这里给出相应的输出。例如:

2
3
1
int fun(int n,int m)
{
    if(m==0)
        return 1;
    else if(n==1)
        return 1;
    else if(m==n)
        return 1;
    else
        return fun(n-1,m-1)+fun(n-1,m);
}

6-2 sdut-C语言实验- n个数的排序

Qiao当上了体育委员,现在老师让他去给班级里的人排队,Qiao刚学了排序,所以他想以这种方式给班级里的人排队(从矮到高),他想知道排序完成后的结果。

函数接口定义:

void sort(int *p,int n);

其中 pn 都是用户传入的参数。 p 的值为传递过来的地址; n 的为正整数(1<=n<=100)。函数不需要返回数据。

裁判测试程序样例:


#include <stdio.h>

void sort(int *p,int n);

int main()
{
    int a[100];
    int n,i;
    int *p1;
    while(scanf("%d",&n)!=EOF)
    {
        for(p1=a; p1<a+n; p1++)
            scanf("%d",p1);
        sort(a,n);
        for(i=0; i<n-1; i++)
            printf("%d ",a[i]);
        printf("%d\n",a[n-1]);
    }
    return 0;
}

/* 请在这里填写答案 */

输入样例:

多组输入,每组的第一行是一个正数n(1<=n<=100),第二行是n个数,表示每一个人的高度。比如:

3
176 175 174

输出样例:

174 175 176
void sort(int a[100],int n)
{
    int i,j,t;
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-i-1;j++)
        {
            if(a[j]>a[j+1])
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
}

6-3 sdut- C语言实验——矩阵下三角元素之和

输入一个正整数n(1<=n<=10),再输入n*n的矩阵,要求求该矩阵的下三角元素之和。

函数接口定义:

int f(int (*p)[10],int n);

其中 pn 都是用户传入的参数。 p 的值为地址; n 是[1, 10]区间内的个位数。函数不需要返回数据。

裁判测试程序样例:


#include<stdio.h>
int  f(int (*p)[10],int n);

int main()
{
    int n,i,j,sum;
    int a[10][10];
    scanf("%d",&n);
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    sum=f(a,n);
    printf("%d",sum);
    return 0;
}


/* 请在这里填写答案 */

输入样例:

5
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9

输出样例:

75
int f(int a[10][10],int n)
{
    int i,j,sum=0;
    for(i=0;i<n;i++)
    {
        for(j=0;j<=i;j++)
        {
            sum=sum+a[i][j];
        }
    }
    return sum;
}

6-4 sdut-C语言实验- N!

给出两个数 n, m。求
 

1.png



 

2.png



计算公式:

3.png


输入数据有多组(数据组数不超过 250),到 EOF 结束。

对于每组数据,输入两个用空格隔开的整数 n, m (0 <= m <= n <= 20) 。
对于每组数据输出一行,
 

1.png



 

2.png


,用空格隔开。

提醒:因为n!和 m! 数据较大,定义数据类型应用 long long int,输出格式%lld

函数接口定义:

long long int f(long long int n);

其中 n 是用户传入的参数。函数须返回n!的值。

裁判测试程序样例:


#include <stdio.h>
long long int f(long long int n);
int main()
{
    long long int n,m,i;
    while(~scanf("%lld %lld",&n,&m))
    {
        long long int a,c;
        a=f(n)/f(n-m);
        c=f(n)/f(n-m)/f(m);
        printf("%lld %lld\n",a,c);
    }
    return 0;
}

/* 请在这里填写答案 */

输入样例:

在这里给出一组输入。例如:

1 1
5 3
4 3

输出样例:

在这里给出相应的输出。例如:

1 1
60 10
24 4
long long int f(long long int n)
{
    long long int i,x=1;
    for(i=1;i<=n;i++)
    {
        x=x*i;
    }
    return x;
}

6-5 sdut-C语言实验-使用函数验证哥德巴赫猜想

本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和。素数就是只能被1和自身整除的正整数。输入一个不小于6的偶数n,找出两个素数,使它们的和为n。注意:1不是素数,2是素数。

函数接口定义:

int isPrime( int x ); void Goldbach( int n );

其中函数isPrime当用户传入参数x为素数时返回1,否则返回0;函数Goldbach按照格式“n=p+q”输出n的素数分解,其中p≤q均为素数。又因为这样的分解不唯一(例如24可以分解为5+19,还可以分解为7+17),要求必须输出所有解中p最小的解。

裁判测试程序样例:


#include <stdio.h>
int isPrime( int x );
void Goldbach( int n );
int main()
{
    int n;
    scanf("%d",&n);
    if(n%2==0)
        Goldbach( n );
    return 0;
}

/* 请在这里填写答案 */

输入样例:

80

输出样例:

80=7+73
int isPrime(int p)
{
    int flag=1,i;
    if(p==1)
        flag=0;
    else
    {
        for(i=2;i<=p-1;i++)
        {
            if(p%i==0)
            {
                flag=0;
            break;
            }
        }
    }
    return flag;
}
void Goldbach(int n)
{
    int i;
    for(i=2;i<n;i++)
    {
        if(isPrime(i)&&isPrime(n-i))
        {
            printf("%d=%d+%d",n,i,n-i);
        break;
        }
    }
}

6-6 sdut-C语言实验- 求数列的和

数列的定义如下: 数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。
提示:因为自定义函数中用到数学函数,因此本题目的提交答案需要包括头文件在内的主函数和自定义函数。

函数接口定义:

double s(double n,int m);

其中 nm 都是用户传入的参数。 n 的值不超过double的范围; m 的值不超过int的范围。函数须返回数列前m项的和。

提示:本题需要在自定义函数中使用sqrt()数学函数,因此在填写答案时需要提交完整的程序,既题目已经给定的代码部分和需要填写的答案部分。

裁判测试程序样例:

#include <stdio.h>
#include <math.h>

double s(double n,int m);

int main()
{
    int a,b,m,i;
    double sum,n;
    while (scanf("%lf %d",&n,&m)!=EOF)
    {
        sum=s(n,m);
        printf("%.2lf\n",sum);
    }

    return 0;
}


/* 请在这里填写答案 */

输入样例:

81 4
2 2

输出样例:

94.73
3.41
#include <stdio.h>
#include <math.h>
double s(double n,int m);
int main()
{
    int n,m;
    double sum;
    while (scanf("%d %d",&n,&m)!=EOF)
    {
        sum=s(n,m);
        printf("%.2lf\n",sum);
    }
    return 0;
}
double s(double n,int m)
{
    double i;
    double x=0;
    for(i=0;i<m;i++)
    {
        x=x+n;
        n=sqrt(n);
    }
    return x;
}

 6-7 递归实现顺序输出整数

本题要求实现一个函数,对一个整数进行按位顺序输出。

函数接口定义:

void printdigits( int n );

函数printdigits应将n的每一位数字从高位到低位顺序打印出来,每位数字占一行。

裁判测试程序样例:

#include <stdio.h>

void printdigits( int n );

int main()
{
    int n;
    
    scanf("%d", &n);
    printdigits(n);

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

12345

输出样例:

1
2
3
4
5
void printdigits(int n)
{
    if(n<=9)
        printf("%d\n",n);
    else
    {
        printdigits(n/10);
        printf("%d\n",n%10);
    }
}

标签:函数,int,double,样例,long,实验,程序设计,include
From: https://blog.csdn.net/r2931887650/article/details/142823035

相关文章

  • 程序设计基础I-实验7 函数(编程题)
    7-1sdut-C语言实验—计算表达式计算下列表达式值:输入格式:输入x和n的值,其中x为非负实数,n为正整数。输出格式:输出f(x,n),保留2位小数。输入样例:32输出样例:在这里给出相应的输出。例如:2.00#include<stdio.h>#include<math.h>doublef(doublex,intn){......
  • 程序设计基础I-实验8 指针(函数题)
    6-1sdut-C语言实验-n个数的排序Qiao当上了体育委员,现在老师让他去给班级里的人排队,Qiao刚学了排序,所以他想以这种方式给班级里的人排队(从矮到高),他想知道排序完成后的结果。函数接口定义:voidsort(int*p,intn);其中p和n都是用户传入的参数。p的值为传递过来的地址;......
  • Linux !ko/5.17-BBRplus AMD64(X86_64)内核致命的 futex_wait 函数死锁问题。
    !ko表示系统内核(system-kernel)致命:在CentOS(RedHat)、Ubuntu、Debian等多个发行版本Linux操作系统上,若人们升级 5.17-BBRplus版本内核,那么在应用程式频繁的futex_wait(syscall)等待唤醒时,或会存在futex_wait函数发生死锁的疑难问题。LMP:futex(2)-Linuxmanualpa......
  • 【玩转 JS 函数式编程_011】3.2 JS 函数式编程筑基之:以函数式编程的方式活用函数(下)+ 3
    文章目录3.2.4.填充脚本Polyfills1.检测Ajax(DetectingAjax)2.替代函数Addingmissingfunctions3.2.5.插入处理Stubbing3.2.6.即时调用Immediateinvocation3.3.本章小结Summary写在前面不知道看到这里的朋友有没有真正消化上篇中介绍的知识,这些内......
  • 20222308 2024-2025-1 《网络与系统攻防技术》实验一实验报告
    1.实验内容本次式样具体内容是通过三种方法,运行pwn1可执行文件,调用getshell。缓冲区溢出作为一种非常致命的攻击,它会使攻击者直接破坏堆栈保护,非法获取数据。完成本次实验,需要具备以下知识和技能基础:创建kali虚拟机,连接网络等这个部分对我来说还是出现了比较大的波折,我的操......
  • 实验文档2
    关于第二次实践课作业实验结论task1.c 1#include<stdio.h>2#include<time.h>3intmain()4{5constintN=5;6constintN1=397;7constintN2=476;8constintN3=21;910intcnt;11intrandom_major,random_n......
  • 实验2
    任务11#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#defineN55#defineN13976#defineN24767#defineN3218intmain()9{10intcnt;11intrandom_major,random_no;12srand(time(NULL));13......
  • 实验2
     实验任务1:源代码:1#include<stdio.h>2#include<stdlib.h>3#include<time.h>45#defineN56#defineN13977#defineN24768#defineN3219//随机抽取学生的学号10intmain(){11intcnt;12intrandom_major,random_no;1......
  • 实验2
    任务1 #include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5#defineN1397#defineN2476#defineN321intmain(){intcnt;intrandom_major,random_no;srand(time(NULL));cnt=0;while(cn......
  • 实验1 现代c++编程初体验
    实验1:1//现代C++标准库、算法库体验2//本例用到以下内容:3//1.字符串string,动态数组容器类vector、迭代器4//2.算法库:反转元素次序、旋转元素5//3.函数模板、const引用作为形参67#include<iostream>8#include<string>9#include......