非写代码无以致远

简介: 标题党一下,本篇文章主要汇总了一些代码题,让大家写一些代码练习一下吧!

标题党一下,本篇文章主要汇总了一些代码题,让大家写一些代码练习一下吧!

变种水仙花_牛客题霸_牛客网 (nowcoder.com)

#include<stdio.h>
int main() 
{
    for (int i = 10000; i <= 99999; i++) {
        int sum = 0;
        for (int j = 10; j <= 10000; j*=10) {
            sum += (i / j) * (i % j);
        }
        if (sum == i) {
            printf("%d ", i);
        }
    }
    return 0;
}

序列中删除指定数字_牛客题霸_牛客网 (nowcoder.com)

#include<stdio.h>
int main() {
        int n;
        scanf("%d", &n);
        int arr[50] = { 0 };
        for (int i = 0; i < n; i++) {
                scanf("%d", &arr[i]);
           
    }
        int del;
        scanf("%d", &del);
        int j = 0;
        int i = 0;
        for (; i < n; i++) {
                if (arr[i] != del) {
                        arr[j] = arr[i];
                        j++;
                   
        }
           
    }
        for (int k = 0; k < j; k++) {
                printf("%d ", arr[k]);
           
    }
        return 0;
}

使用联合体判断大小端

使用联合体的知识,写一个函数判断当前机器是大端还是小端,如果是小端返回1,如果是大端返回0。

int check_sys()
{
union
{
int i;
char c;
}un;
un.i = 1;
return un.c;//返回1是⼩端,返回0是⼤端
}

1929. 数组串联 - 力扣(LeetCode)

 
int* getConcatenation(int* nums, int numsSize, int* returnSize) 
//nums:当前数组 numsSize:当前数组的长度 returnSize返回数组的长度
{
    int*ans=(int*)malloc(sizeof(int)*numsSize*2);//为其开辟2倍的空间
    for(int i=0;i<numsSize;i++)
    {
        ans[i] =nums[i];
        ans[i + numsSize] = nums[i];
    }
    *returnSize=2*numsSize;
    return ans;
}

写一个程序拷贝函数

# define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#include<stdlib.h>
void CopyText()
{
  FILE* fr = fopen("data.txt", "r");
  if (fr == NULL)
  {
    perror("fopen read Error");
    return;
  }
  FILE* fw = fopen("data_copy.txt", "w");
  if (fw == NULL)
  {
    perror("fopen write Error");
    return;
  }
  //开始一边读,一边写
  int ch = 0;
  while ((ch = fgetc(fr)) != EOF)
  {
    fputc(ch, fw);
  }
  fclose(fr);
  fclose(fw);
  fr = NULL;
  fw = NULL;
}
int main()
{
  return 0;
}

使用malloc函数模拟开辟一个二维数组

使用malloc函数模拟开辟一个3*5的整型二维数组,开辟好后,使用二维数组的下标访问形式,访问空间。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
  int** arr = (int**)malloc(sizeof(int*) * 3);
  for (int i = 0; i < 3:i++)
  {
    arr[i] = (int*)malloc(5 * sizeof(int));
  }
  for (int i = 0; i < 3; i++)
  {
    for (int j = 0; j < 3; j++)
    {
      arr[i][j] = 1;
    }
  }
  for (int i = 0; i < 3; i++)
  {
    for (int j = 0; j < 3; j++)
    {
      printf("%d", arr[i][j]);
    }
  }
    printf("\n");
    for (int i = 0; i < 3; i++)
  {
      free(arr[i]);//如何生成,就如何释放
            arr[i]=NULL;
    
  }
    free(arr);
    arr=NULL;
    
  printf("\n");
  return 0;
}

offset宏

写一个宏,计算结构体中某变量相对于首地址的偏移,并给出说明

这个函数的头文件是include<stddef.h>

再来看看这个函数的参数:

宏定义的这句是什么意思呢,0强转为(struct A*) 类型,当前结构体的首地址是0号地址(NULL)。拿到m的地址之后又做了强制类型转换,再强转为size_t(通常用于表示对象的大小或内存中的偏移量),这个size_t是整型。转换为整型4。

# define _CRT_DEFINE_NO_WARNINGS 
#define My_offsetoff(s,m) ((size_t)&(((s*)0)->m))
#include<stdio.h>
#include<stddef.h>
struct A
{
  char c;
  int count;
};
int main()
{
  int ret=My_offsetoff(struct A,c);
  //int ret = offsetof(struct A, m);
  printf("%d", ret);
  return 0;
}

写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换。

n&这些数,可以分别拿到奇数位和偶数位。 此时按位或这两位就行了。

把n传入,定义一个这样的公式就可以解决问题。

# define _CRT_SECURE_NO_WARNINGS 
#define SwapBit(n) ((((n)&0x55555555)<< 1)|((n)&0xaaaaaaaa)>>1)))
#include<stdio.h>
int main()
{
  printf("%d\n", SwapBit(11));
  return 0;
}
相关文章
|
5月前
|
大数据
低代码引时代浪潮,校企合作实训共筑未来蓝图
山东建筑大学携手织信低代码签署校企合作协议,共建产学研联盟,推出低代码实训课程,强化理论与实践结合,培养数字时代复合型人才。双方合作包括课程建设、实习基地打造及产学研创新,旨在提升学生软件开发能力和就业竞争力,响应科教兴国战略,推动教育与产业融合发展。
|
运维 前端开发 Cloud Native
程序员如何行稳致远
作为一名在IT行业摸爬滚打了13年的资深程序员,一路走来吃过很多亏。对于程序员在职业生涯中有哪些关键事件,我做了以下几点总结,希望对你有所启发,让你少走弯路。
|
敏捷开发 搜索推荐 大数据
云与数字化转型的样板:Twilio十年,终入牛市
2008年,一家叫作Twilio的创业公司成立了。这家只比AWS晚了两年出现的创业公司,专注于云通信协作服务,主要为企业提供基于云的通信、企业呼叫中心和联络中心解决方案。按照亚马逊的实践经验,一项新的互联网服务要想成功,至少需要十年的时间。2018年,Twilio进入了牛市。
384 0
云与数字化转型的样板:Twilio十年,终入牛市
|
前端开发 网络协议 程序员
细数国内代码协作平台
以GitHub为代表的新一代代码协作平台开创了协同开发的新时代。开发者之间基于代码的协作从来没有像今天这样顺畅。GitHub上向你发送合并请求的开发者,可能和你分处大洋两岸,也可能和你同在一间办公室。上个礼拜,GitHub宣布其上托管的git仓库已经突破一千万大关!
1014 0
细数国内代码协作平台
|
传感器 人工智能 自然语言处理
重构办公场景 “未来智慧办公室”亮相云栖大会
阿里巴巴通过IoT与AI技术,对物理办公空间的数字化,重构组织、人员、场所、设备、系统的关系,帮助企业提高办公效能,提升组织协同效率。
1020 0
重构办公场景  “未来智慧办公室”亮相云栖大会
|
运维 架构师 程序员
饿了么总监分享:我是如何完成从程序员到管理层的蜕变?
很多小伙伴说,我在底层已经搬砖好几年了,要怎么才能晋升管理层?这个问题我也是感同身受,因为我也在底层工作了好多年了o(╥﹏╥)o为了给大家解答这个问题,我有幸邀请到了饿了么前总监来为我们做一些分享:我是如何完成从程序员到管理层的蜕变,大家欢迎! 本文稿对应的视频可以在我的B站(程序员良许)里看到,欢迎一键三连哦~
185 0
|
架构师
从懵懂到成熟担当,支付宝首席架构师做了这三件事
7月12日, Discover Ant 实习生夏令营的开营仪式上,支付宝首席架构师王维来到现场,讲述这十年里陪伴他不断成长的三种精神,三个故事。
5939 0
从懵懂到成熟担当,支付宝首席架构师做了这三件事