基础编程函数题

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…

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…

数据库操作(函数)

函数是一段可以直接被另外一段程序调用的程序或代码 一。字符串函数 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…

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…

总结优秀的prompt案例,学习更有效的prompt提示词工程写法,值得收藏

Prompt 提示词工程大多数人都在用&#xff0c;而且都会用&#xff0c;但是不一定写的好&#xff1f;很多人都在想怎么写好&#xff0c;更能满足自己的业务需求&#xff0c;或者实际场景。 我最近工作中也写了很多的prompt&#xff0c;像zero-shot、few-shot、COT这些都尝试过、…

FSC认证是什么?森林认证的好处是什么?

FSC认证&#xff08;Forest Stewardship Council&#xff0c;森林管理委员会认证&#xff09;是一种运用市场机制来促进森林可持续经营&#xff0c;实现生态、社会和经济目标的工具。以下是关于FSC认证的详细介绍&#xff1a; 一、FSC认证包括两个方面&#xff1a; 森林经营认…

乡村振兴与农业现代化:以现代农业科技为引领,提升农业综合生产能力,打造高产高效、生态安全的美丽乡村

目录 一、引言 二、现代农业科技在乡村振兴中的作用 &#xff08;一&#xff09;提高农业生产效率 &#xff08;二&#xff09;促进农业产业升级 &#xff08;三&#xff09;改善农村生态环境 三、提升农业综合生产能力的途径 &#xff08;一&#xff09;加强农业科技研…

Diffusion Policy:基于扩散模型的机器人动作生成策略

项目地址&#xff1a; Diffusion Policy (columbia.edu) 一、摘要 本文介绍了 "扩散策略"&#xff0c;这是一种生成机器人行为的新方法&#xff0c;它将机器人的视觉运动策略&#xff08;visuomotor policy&#xff09;表示为条件去噪扩散过程&#xff08;conditi…

添加、修改和删除列表元素

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 添加、修改和删除列表元素也称为更新列表。在实际开发时&#xff0c;经常需要对列表进行更新。下面我们介绍如何实现列表元素的添加、修改和删除。 …

如何使用Matlab进行三角剖分(自定义函数实现delaunayTriangulation 使用Bowyer-Watson 算法)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、Delaunay三角形 二、使用步骤 1.Bowyer-Watson算法 2.算法步骤 三、动画演示 四、核心代码 五、对比matlab自带函数和我们的算法&#xff1a; 总结 前…

谷歌开源项目BERT源码解读与应用实例

数据及代码见文末 基于BERT的中文情感分析实战:基于BERT的中文情感分析实战-CSDN博客 基于BERT的中文命名实体识别识别实战:基于BERT的中文命名实体识别识别实战-CSDN博客 1.项目配置文件 GLUE/BERT_BASE_DIR是项目的预训练权重,预训练权重主要包含3个部分:参数配置文件…

打气球小游戏

1.气球往上飘 我们声明两个符号常量来作为窗体的长和宽,接着就是常规操作 #define WINDOW_WIDTH 800 #define WINDOW_HEIGHT 600#include<easyx.h> #include<stdio.h> int main() {initgraph(WINDOW_WIDTH, WINDOW_HEIGHT);setbkcolor(WHITE);cleardevice();get…

python+selenium - UI自动框架之封装浏览器引擎driver方法

在做兼容性测试的适合&#xff0c;可以运行指定的浏览器&#xff08;IE,Chrome,Edge&#xff09; 目录文件&#xff1a; from selenium import webdriver from urllib3.exceptions import ProtocolError from common.log import *def getDriver():# if browserType is None:br…

模拟面试题

1.装箱和拆箱是指什么&#xff1f; 装箱——把栈中内容迁移到堆中去&#xff08;值转引用&#xff09; 拆箱——把堆中内容迁移到栈中去&#xff08;引用转值&#xff09; 2.值和引用类型在变量赋值时的区别是什么&#xff1f; 值类型&#xff1a;赋值时复制数据本身&a…