基础编程函数题

1.简单输出整数:本题要求实现一个函数,对给定的正整数N,打印从1到N的全部正整数。

#include <stdio.h>

void PrintN ( int N );

int main ()
{
    int N;

    scanf("%d", &N);
    PrintN( N );

    return 0;
}

void PrintN(int N) {  
    // 检查N是否大于0  
    if (N > 0) {  
        // 使用for循环从1遍历到N  
        for (int i = 1; i <= N; i++) {  
            // 打印每个数字并换行  
            printf("%d\n", i);  
        }  
    } else {  
        // 如果N不是正整数,可以选择输出错误信息(这里不强制要求)  
        printf("N must be a positive integer.\n");  
    }  

2.多项式求值:本题要求实现一个函数,计算阶数为n,系数为a[0] ... a[n]的多项式f(x)=\sum _{n}^{i=1}​(a[i]×xi) 在x点的值。

#include <stdio.h>

#define MAXN 10

double f( int n, double a[], double x );

int main()
{
    int n, i;
    double a[MAXN], x;
    
    scanf("%d %lf", &n, &x);
    for ( i=0; i<=n; i++ )
        scanf("%lf", &a[i]);
    printf("%.1f\n", f(n, a, x));
    return 0;
}

#include<math.h>
double f(int n, double a[], double x) {  
    double sum = 0.0;  
    int i;  
    for (i = 0; i <= n; i++) {  
        sum += a[i] * pow(x, i); // a[i] * x^i  
    }  
    return sum;  
}  

3. 简单求和:本题要求实现一个函数,求给定的N个整数的和。

#include <stdio.h>

#define MAXN 10

int Sum ( int List[], int N );

int main ()
{
    int List[MAXN], N, i;

    scanf("%d", &N);
    for ( i=0; i<N; i++ )
        scanf("%d", &List[i]);
    printf("%d\n", Sum(List, N));

    return 0;
}

int Sum(int List[], int N) {  
    int sum = 0;  
    for (int i = 0; i < N; i++) {  
        sum += List[i];  
    }  
    return sum;  
}  

4.求自定类型元素的平均:本题要求实现一个函数,求N个集合元素S[]的平均值,其中集合元素的类型为自定义的ElementType

#include <stdio.h>

#define MAXN 10
typedef float ElementType;

ElementType Average( ElementType S[], int N );

int main ()
{
    ElementType S[MAXN];
    int N, i;

    scanf("%d", &N);
    for ( i=0; i<N; i++ )
        scanf("%f", &S[i]);
    printf("%.2f\n", Average(S, N));

    return 0;
}

ElementType Average(ElementType S[], int N) {  
    ElementType sum = 0.0;  
    for (int i = 0; i < N; i++) {  
        sum += S[i];  
    }  
    return sum / N;  
}  

5.求自定类型元素的最大值:本题要求实现一个函数,求N个集合元素S[]中的最大值,其中集合元素的类型为自定义的ElementType

#include <stdio.h>

#define MAXN 10
typedef float ElementType;

ElementType Max( ElementType S[], int N );

int main ()
{
    ElementType S[MAXN];
    int N, i;

    scanf("%d", &N);
    for ( i=0; i<N; i++ )
        scanf("%f", &S[i]);
    printf("%.2f\n", Max(S, N));

    return 0;
}

ElementType Max(ElementType S[], int N) {  
    if (N <= 0) {  
        // 如果数组为空或N为0,可以返回一个特定的值或进行错误处理  
        // 这里我们简单地返回0.0作为默认值  
        return 0.0;  
    }  
  
    ElementType maxValue = S[0]; // 假设第一个元素是最大的  
    for (int i = 1; i < N; i++) {  
        if (S[i] > maxValue) {  
            maxValue = S[i]; // 如果找到更大的值,则更新最大值  
        }  
    }  
    return maxValue;  
}  

 6.求单链表结点的阶乘和:本题要求实现一个函数,求单链表L结点的阶乘和。这里默认所有结点的值非负,且题目保证结果在int范围内。

#include <stdio.h>
#include <stdlib.h>

typedef struct Node *PtrToNode;
struct Node {
    int Data; /* 存储结点数据 */
    PtrToNode Next; /* 指向下一个结点的指针 */
};
typedef PtrToNode List; /* 定义单链表类型 */

int FactorialSum( List L );

int main()
{
    int N, i;
    List L, p;

    scanf("%d", &N);
    L = NULL;
    for ( i=0; i<N; i++ ) {
        p = (List)malloc(sizeof(struct Node));
        scanf("%d", &p->Data);
        p->Next = L;  L = p;
    }
    printf("%d\n", FactorialSum(L));

    return 0;
}

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

int FactorialSum(List L) {  
    int sum = 0;  
    PtrToNode p = L;  
    while (p != NULL) {  
        sum += Factorial(p->Data);  
        p = p->Next;  
    }  
    return sum;  
}

7. 统计某类完全平方数:本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。

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

int IsTheNumber ( const int N );

int main()
{
    int n1, n2, i, cnt;
    
    scanf("%d %d", &n1, &n2);
    cnt = 0;
    for ( i=n1; i<=n2; i++ ) {
        if ( IsTheNumber(i) )
            cnt++;
    }
    printf("cnt = %d\n", cnt);

    return 0;
}

int IsTheNumber ( const int N )
{
    int k,p,n=N,i,flat=0;
    int a[10]={0};
    k=sqrt(N);
    if(k*k!=N)
    {
        return 0;
    }
    else
    {
        while(n)
        {
            p=n%10;
            a[p]++;
            n/=10;
        }
        for(i=0;i<10;i++)
        {
            if(a[i]>=2)
            {
                flat=1;
            }
        }
        if(flat) return 1;
        else return 0;
    }
    
}

 8.简单阶乘计算:本题要求实现一个计算非负整数阶乘的简单函数。

#include <stdio.h>

int Factorial( const int N );

int main()
{
    int N, NF;
    
    scanf("%d", &N);
    NF = Factorial(N);
    if (NF)  printf("%d! = %d\n", N, NF);
    else printf("Invalid input\n");

    return 0;
}

int Factorial( const int N ){
    int sum=1;
    if(N>=0){
        for(int i=1;i<=N;i++){
            sum=sum*i;
        }
        return sum;
    }
    else
        return 0;
    
}

 9.统计个位数字:本题要求实现一个函数,可统计任一整数中某个位数出现的次数。例如-21252中,2出现了3次,则该函数应该返回3。

#include <stdio.h>

int Count_Digit ( const int N, const int D );

int main()
{
    int N, D;
    
    scanf("%d %d", &N, &D);
    printf("%d\n", Count_Digit(N, D));
    return 0;
}

#include <stdlib.h>  
  
int Count_Digit ( const int N, const int D ) {  
    int count = 0;  
    int temp = abs(N); // 消除负号的影响,abs()函数需要#include <stdlib.h>  
    if(N==0&&D==0)
        return 1;
    while (temp > 0) {  
        int digit = temp % 10; // 获取当前最低位数字  
        if (digit == D) {  
            count++;  
        }  
        temp /= 10; // 移除最低位数字  
        
        
    }  
      
    return count;  
}  

10.阶乘计算升级版:本题要求实现一个打印非负整数阶乘的函数。

#include <stdio.h>

void Print_Factorial ( const int N );

int main()
{
    int N;
    
    scanf("%d", &N);
    Print_Factorial(N);
    return 0;
}

void Print_Factorial ( const int N ) {
    if(N<0)
        printf("Invalid input");
    else {
        int num[3000]={0},j,n=N;    //num记录各个位上的数字,全初始化为0
        num[0]=1;                   //个位初始化为1
        int l=0;                    //记录结果的位数
        int carry=0;                //低位向高位的进位
        for(int i=2;i<=n;i++) {
            for(j=0;j<=l;j++) {
                int temp=num[j]*i+carry;
                num[j]=temp%10;     //该位的数
                carry=temp/10;      //进位的数
            }
            while(carry) {          //拓展结果的总位数记录进位的数,直到进位为0
                num[j++]=carry%10;  //该位的数
                carry/=10;          //进位的数
                l++;
            }
        }
        for(;l>=0;l--)              //数组按照从地位到高位的方式存储结果,逆向输出结果
            printf("%d",num[l]);
    }
}

11.求自定类型元素序列的中位数:本题要求实现一个函数,求N个集合元素A[]的中位数,即序列中第⌊(N+1)/2⌋大的元素。其中集合元素的类型为自定义的ElementType

#include <stdio.h>

#define MAXN 10
typedef float ElementType;

ElementType Median( ElementType A[], int N );

int main ()
{
    ElementType A[MAXN];
    int N, i;

    scanf("%d", &N);
    for ( i=0; i<N; i++ )
        scanf("%f", &A[i]);
    printf("%.2f\n", Median(A, N));

    return 0;
}

ElementType Median( ElementType A[], int N )
{
    int i, j, gap;
    ElementType t;
    for (gap = N / 2; gap > 0; gap /= 2)//分组(增量由大到小)
        for (i = gap; i < N; i++)//各组依次在组内做插入排序
            for (j = i - gap; j >= 0 && A[j] > A[j + gap]; j -= gap)//实现组内的插入
                {
                    t=A[j];
                    A[j]=A[j+gap];
                    A[j+gap]=t;
                }
    return A[N/2];
}

12.判断奇偶性:本题要求实现判断给定整数奇偶性的函数。

#include <stdio.h>

int even( int n );

int main()
{    
    int n;

    scanf("%d", &n);
    if (even(n))
        printf("%d is even.\n", n);
    else
        printf("%d is odd.\n", n);
    
    return 0;
}

int even( int n ){
    if(n%2==0)
        return 1;
    else
        return 0;
}

13. 折半查找:给一个严格递增数列,函数int Search_Bin(SSTable T, KeyType k)用来二分地查找k在数列中的位置。


#include <iostream>
using namespace std;

#define MAXSIZE 50
typedef int KeyType;

typedef  struct                     
{ KeyType  key;                                             
} ElemType;  

typedef  struct
{ ElemType  *R; 
  int  length;
} SSTable;                      

void  Create(SSTable &T)
{ int i;
  T.R=new ElemType[MAXSIZE+1];
  cin>>T.length;
  for(i=1;i<=T.length;i++)
     cin>>T.R[i].key;   
}

int  Search_Bin(SSTable T, KeyType k);

int main () 
{  SSTable T;  KeyType k;
   Create(T);
   cin>>k;
   int pos=Search_Bin(T,k);
   if(pos==0) cout<<"NOT FOUND"<<endl;
   else cout<<pos<<endl;
   return 0;
}

int  Search_Bin(SSTable T, KeyType k){
    int l=0,r=T.length;
    while(l<r){
        int mid=(r-l)/2+l;
        int temp=T.R[mid].key;
        if(temp<k){
            l=mid+1;
        }else {
            r=mid;
        }
    }
    return T.R[l].key==k?l:0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/13806.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

会所前台装水离子雾化壁炉前和装后对比

会所前台装水离子雾化壁炉前和装后会有明显的对比&#xff1a; 装水离子雾化壁炉之前&#xff1a; 普通前台氛围&#xff1a; 在壁炉安装之前&#xff0c;前台可能显得普通&#xff0c;缺乏独特的装饰元素或焦点。 空间感平淡&#xff1a;前台的氛围可能相对平淡&#xff0c…

了解监控易(42):国产化信创运维,自主可控

在信息化快速发展的今天&#xff0c;数据安全和系统自主可控性成为了企业关注的重点。监控易作为一款具有完全自主可控优势的监控运维解决方案&#xff0c;凭借其独特的技术架构和灵活的适配能力&#xff0c;成功满足了信创及国产化替代的需求&#xff0c;展现出了显著的竞争优…

【Python设计模式05】装饰模式

装饰模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许向一个现有对象添加新的功能&#xff0c;同时又不改变其结构。装饰模式通过创建一个装饰类来包裹原始类&#xff0c;从而在不修改原始类代码的情况下扩展对象的功能。 装饰模式的结构…

Python踩坑系列之使用redis报错:module ‘redis‘ has no attribute ‘Redis‘问题

一步一步往后看哦&#xff01;&#xff01;&#xff01; 纳尼&#xff0c;大伙看看这是什么情况&#xff0c;都是这么写的呢&#xff0c;为啥我这就报错了0.0 出现问题不可怕&#xff0c;解决它就完事了。 方法一、安装redis重新运行程序 pip install redis 无果&#xff0…

金丝雀发布(灰度发布)介绍 及 声明式管理方法简介

目录 一 应用发布策略 1&#xff0c;滚动发布&#xff08;k8s默认&#xff09; 2&#xff0c;蓝绿发布 3&#xff0c;金丝雀发布 二 金丝雀发布&#xff08;Canary Release&#xff09; &#xff08;灰度发布&#xff09; 1&#xff0c;金丝雀发布图解 2&#xff0…

Oracle事务开始时的SCN

Oracle为每一个事物都分配一个唯一的SCN值&#xff0c;事务开始时的SCN可以从V$TRANSACTION.START_SCNB START_SCNW中查询&#xff0c;如下所示&#xff1a; SQL> update t2 set obj#1 where rownum1; 1 row updated. SQL> select XIDUSN,START_SCNB,START_SCNW from v…

数据库操作(函数)

函数是一段可以直接被另外一段程序调用的程序或代码 一。字符串函数 1.concat(s1,s1....sn)&#xff1a;字符串拼接&#xff0c;将s1&#xff0c;s2&#xff0c;sn拼接为一个字符串 例如&#xff1a; select concat("hello","world"); 2.lower(str&…

登录验证登录次数失败过多进行设置延时

现象结果示例截图 swagger示例效果 控制台示例效果 后端代码示例 package com.java.javamethod.service.impl;import com.java.javamethod.dao.UserMapper; import com.java.javamethod.domain.Result; import com.java.javamethod.domain.User; import lombok.extern.slf4j.…

《绝地潜兵2》开发商目标成为下一个暴雪或FS社

《绝地潜兵2》的开发商Arrowhead正以惊人的表现在游戏界崭露头角。这款游戏在发售后迅速获得了巨大成功&#xff0c;使得Arrowhead的首席创意官Johan Pilestedt怀揣雄心壮志&#xff0c;他们的目标是在保持独立的同时&#xff0c;成为下一个暴雪或From Software。 Johan Pilest…

firewalld

一、Firewalld概述 Firewalld 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具 支持IPV4、IPV6防火墙设置以及以太网桥 支持服务或应用程序直接添加防火墙规则接口 拥有两种配置模式 运行时配置 永久配置 二、Firewalld和iptables的关系 netfilter 位于L…

java中的抽象类到底如何用

抽象类的使用 一、设计模式中的使用1. 模板方法模式2. 抽象工厂模式 二、扩展性和灵活性三、为什么开发时抽象类用的很少&#xff0c;反而用接口的很多 一、设计模式中的使用 1. 模板方法模式 1.定义&#xff1a;当你需要为一组相关类提供一个操作的框架&#xff0c;其中一些…

【Muduo】三大核心之EventLoop

Muduo网络库的EventLoop模块是网络编程框架中的核心组件&#xff0c;负责事件循环的驱动和管理。以下是对EventLoop模块的详细介绍&#xff1a; 作用与功能&#xff1a; EventLoop是网络服务器中负责循环的重要模块&#xff0c;它持续地监听、获取和处理各种事件&#xff0c;…

10个最佳Android数据恢复工具,用于恢复已删除的文件

由于我们现在在智能手机上存储了许多重要文件&#xff0c;因此了解数据恢复工具变得很重要。您永远不会知道何时需要使用适用于Android的数据恢复工具。 由于不乏Windows数据恢复工具&#xff0c;因此从崩溃的计算机中恢复文件很容易。但是&#xff0c;当涉及到从Android恢复数…

兆原数通基于Apache SeaTunnel的探索实践

随着大数据技术的不断发展&#xff0c;数据同步工具在企业中的应用变得愈发重要。为了满足复杂多样的业务需求&#xff0c;找到一款高效、灵活的数据同步工具变得尤为关键。 在这篇文章中&#xff0c;我们将分享兆原数通研发经理李洪军对Apache SeaTunnel的选择、应用及经验。这…

jinkens打包前端依赖下载失败怎么办

不知道有没有小伙伴遇见这种问题&#xff0c;项目在本地可以正常下载、运行打包&#xff0c;但在jinkens上就不行了&#xff0c;配置了几种镜像也还是不行&#xff0c;这要如何解决呢&#xff1f; 那就只能去到jinkens配置的工作空间那里&#xff0c;找到对应的项目 &#xff…

Django使用Celery实现异步和定时任务功能

1、装库 celery==4.4.2 django-celery-beat==2.2.0 django-celery-results==2.0.12、添加应用 安装完依赖之后,把上面的两个应用添加到Django配置文件settings.py的INSTALLED_APPS里面: 添加celery配置信息 在项目的配置文件中添加如下配置信息,具体的配置作用见注释 I…

YOLOv5/v7 应用轻量级通用上采样算子CARAFE

1. 介绍 CARAFE&#xff08;Content-Aware ReAssembly of FEatures&#xff09;是一种轻量级的通用上采样算子&#xff0c;它可以用于提高卷积神经网络&#xff08;CNN&#xff09;中特征图的分辨率。CARAFE 的特点是计算量小、参数少、易于实现&#xff0c;因此非常适合用于移…

开放重定向漏洞

开放重定向漏洞 1.开放重定向漏洞概述2.攻击场景&#xff1a;开放重定向上传 svg 文件3.常见的注入参数 1.开放重定向漏洞概述 开放重定向漏洞&#xff08;Open Redirect&#xff09;是指Web应用程序接受用户提供的输入&#xff08;通常是URL参数&#xff09;&#xff0c;并将…

代码随想录算法训练营第四十五天|139.单词拆分

139.单词拆分 这题首先肯定是排序问题而不是组合问题&#xff0c;因为单词的顺序是一定的&#xff0c;所以组成单词的字符串顺序也是一定的。所以应该先循环背包容量&#xff0c;再循环物品个数。 背包容量就是s字符串&#xff0c;物品就是数组中的单词&#xff0c;字符串的循…

Kubernetes 文档 / 概念 / 工作负载 / Pod / Init 容器

Kubernetes 文档 / 概念 / 工作负载 / Pod / Init 容器 此文档从 Kubernetes 官网摘录 中文地址 英文地址 本页提供了 Init 容器的概览。Init 容器是一种特殊容器&#xff0c;在 Pod 内的应用容器启动之前运行。Init 容器可以包括一些应用镜像中不存在的实用工具和安装脚本。…