新生培训 day1 C语言基础 顺序 分支 循环 数组 字符串 函数

news2024/11/24 14:32:16

比赛地址
b牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ

C语言数据类型

字符

整型数

int 2e9

long long 9e18

浮点数

代码示例

/*
 * Author: Dduo 
 * Date: 2024-10-8
 * Description: 新生培训day1 
 */
#include <stdio.h>

int main() {
    // 定义变量
    int intVar;
    long longVar;
    long longLongVar;
    float floatVar;
    double doubleVar;
    char charVar;
    
    // 输入整型
    scanf("%d", &intVar);
    printf("您输入的整数是: %d\n", intVar);

    // 输入浮点型
    scanf("%f", &floatVar);
    printf("您输入的浮点数是: %.2f\n", floatVar);

    // 输入双精度浮点型
    scanf("%lf", &doubleVar);
    printf("您输入的双精度浮点数是: %.2lf\n", doubleVar);

    // 输入字符型
    scanf("%c", &charVar);
    printf("您输入的字符是: %c\n", charVar);
    
    // 输入 long 类型
    scanf("%ld", &longVar);
    printf("您输入的 long 是: %ld\n", longVar);

    // 输入 long long 类型
    scanf("%lld", &longLongVar);
    printf("您输入的 long long 是: %lld\n", longLongVar);

    return 0;
}

常量

定义常量的用途主要有以下两个方面:

  1. 提高代码可读性

    • 常量通过使用具有描述性的名称,能够使代码更易于理解。例如,使用 #define PI 3.14 可以让读者一目了然地知道这个值代表的是圆周率,而不是直接在代码中看到一个数字。
  2. 提高代码的可维护性

    • 当需要修改常量的值时,只需在一个地方进行更改(常量定义处),而不必在代码的多个位置逐一修改。这降低了出错的概率,并且便于在未来进行维护和更新。使用常量可以避免“魔法数字”的出现,减少代码中的硬编码。

这两个用途共同作用,使得代码更加清晰、简洁和健壮。

/*
 * Author: Dduo 
 * Date: 2024-10-8
 * Description: 新生培训day1 
 */
#include <stdio.h>
#define mod 19
int main() {
    int a, b;
    scanf("%d %d", &a, &b);
    printf("%d\n", (a * b) % mod);  
    return 0;  
}

运算表达式

 ++ a和a++的区别

/*
 * Author: Dduo 
 * Date: 2024-10-8
 * Description: 新生培训day1 
 */
#include <stdio.h>

int main() {
    
	int a = 1;
	// 先运算再赋值 
	int b = ++a; //结果是b=2
	
	int a = 1;
	// 先赋值再运算 
	int b = a++; //结果是b=1
	
}

用途 数组

判断输出结果

/*
 * Author: Dduo 
 * Date: 2024-10-8
 * Description: 新生培训day1 
 */
#include <stdio.h>

int main() {
    
	int arr[4]{1,2,3,4};
	
	int j=0;
	for(int i=0;i<3;i++){
		printf("%d",arr[++j]);
	} 
	
}
/*
 * Author: Dduo 
 * Date: 2024-10-8
 * Description: 新生培训day1 
 */
#include <stdio.h>

int main() {
    
	int arr[4]{1,2,3,4};
	
	int j=0;
	for(int i=0;i<3;i++){
		printf("%d",arr[j++]);
	} 
	
}

运算符大全

逻辑运算符

用于生成条件表达式

/*
 * Author: Dduo 
 * Date: 2024-10-8
 * Description: 新生培训day1 
 */
#include <stdio.h>

int main() {
    int a = 5;
    int b = 10;

    // 使用逻辑与运算符
    int result = (a > 0 && b < 15);
    printf("结果为: %d\n", result); // 结果为 1 (true)

    return 0;
}
#include <stdio.h>

int main() {
    int x = 0;
    int y = 20;

    // 使用逻辑或运算符
    int result = (x == 0 || y > 15);
    printf("结果为: %d\n", result); // 结果为 1 (true)

    return 0;
}

条件执行语句

判断语句

单条件判断语句

// 用法
if (条件表达式){
	// 条件满足
	要执行的语句
}

条件分支语句 

// 用法
if (条件表达式){
	// 条件满足
	要执行的语句
}else{
	// 条件不满足
	要执行的语句
}

多条件分支语句 

// 用法
if (条件表达式1){
	// 满足条件表达式1
	要执行的语句;
}else if (条件表达式2) {
	// 满足条件表达式2
	要执行的语句;
}else if (条件表达式3) {
	// 满足条件表达式3
	要执行的语句;
}

...

else if (条件表达式n) {
	// 满足条件表达式n
	要执行的语句;
}else{
	// 所有条件表达式都不满足
	要执行的语句;
}

switch语句:开关语句,一般配合case关键字使用

switch(表达式)
{

	case 常量1: 
		// 如果表达式的值等于常量1,执行下面的语句1
		语句1 ;
		break;

	case 常量2: 
		// 如果表达式的值等于常量2,执行下面的语句2
		语句2;
		break;

		...

	case 常量n:
		// 如果表达式的值等于常量n,执行下面的语句n
		语句n;
		break;

	default:
		// 默认执行的语句,如果没有通过上面的开关语句退出,就会执行下面的语句n+1
		语句n+1;
		//break; // default可以省略break;因为它本身就是最后执行,执行完就会退出开关语句。

}

注:switch语句如果没有break会一直向下执行直到结束。

举例

新生训练day1

#include<stdio.h>
int main(){
    int a,b;
    scanf("%d",&a);
    b=a%100;
    if(2<b&&b<6){
        printf("spring");
    }
    if(5<b&&b<9){
        printf("summer");
    }
    if(8<b&&b<12){
        printf("autumn");
    }
    if(b==12&&b<3){
        printf("winter");
    }
    return 0;
}
#include <stdio.h>

int main() {
    int a, b;
    scanf("%d", &a);
    b = a % 100;

    switch (b) {
        case 3: 
        case 4:
        case 5:
            printf("spring\n");
            break;
        case 6: 
        case 7:
        case 8:
            printf("summer\n");
            break;
        case 9: 
        case 10:
        case 11:
            printf("autumn\n");
            break;
        case 12: 
        case 1:
        case 2:
            printf("winter\n");
            break;
        default:
            break;
    }
    
    return 0;
}

循环执行语句

for循环

//用法
for (循环变量赋初值;循环条件;循环变量增量){
	执行语句;
}

while循环

//用法
while (循环条件){
	执行语句;
}

do while循环

//用法
do{
	执行语句;
}while (循环条件);

数组

1. 数组的定义

要定义一个数组,你需要指定数组的类型和大小。例如,定义一个可以存储10个整数的数组:

 

cCopy Code

int numbers[10];

2. 数组的初始化

你可以在定义数组时直接初始化它:

 

cCopy Code

int numbers[5] = {1, 2, 3, 4, 5};

如果你不指定大小,编译器会根据初始化的数据自动推断大小:

 

cCopy Code

int numbers[] = {1, 2, 3, 4, 5}; // 数组大小为5

3. 访问数组元素

数组中的元素可以通过索引访问,索引从0开始。例如,访问第一个元素和最后一个元素:

 

cCopy Code

int first = numbers[0]; // 获取第一个元素 int last = numbers[4]; // 获取第五个元素

4. 修改数组元素

你可以通过索引修改数组中的元素:

 

cCopy Code

numbers[2] = 10; // 将第三个元素改为10

5. 遍历数组

你可以使用循环来遍历数组中的所有元素,例如使用for循环

for (int i = 0; i < 5; i++) { 
    printf("%d ", numbers[i]); 
}

6. 多维数组

C语言支持多维数组,最常用的是二维数组。例如,定义一个3行4列的二维数组:

int matrix[3][4];

初始化一个二维数组:

int matrix[2][3] = { {1, 2, 3}, {4, 5, 6} };

访问二维数组的元素:

  // 遍历二维数组
    for (int i = 0; i < 2; i++) {        // 外层循环遍历行
        for (int j = 0; j < 3; j++) {    // 内层循环遍历列
            printf("%d ", matrix[i][j]); // 打印当前元素
        }
        printf("\n"); // 每行结束后换行
    }

获取元素

int value = matrix[1][2]; // 获取第二行第三列的元素

7. 数组作为函数参数

数组可以作为函数参数传递,但实际上传递的是指向数组首个元素的指针。例如:

void printArray(int arr[], int size) {
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
}
printArray(numbers, 5);

函数

C语言入门基础知识【完整版】_c语言基础知识入门-CSDN博客

ASCII码

ASCII码表完整版_asiica码表-CSDN博客

新生赛day1题解

A

/*
 * Author: Dduo 
 * Date: 2024-10-8
 * Description: 新生培训day1 
 */

#include<stdio.h>
int main(){
	
	printf("Helo word!");
	return 0;
}

B

/*
 * Author: Dduo 
 * Date: 2024-10-8
 * Description: 新生培训day1 
 */

#include<stdio.h>
int main(){
	int n;
	scanf("%d",&n);
	printf("%d",n*262144);
	return 0;
}

C

遍历

/*
 * Author: Dduo 
 * Date: 2024-10-8
 * Description: 新生培训day1 
 */

#include<stdio.h>
int main()
{
    printf("1*1= 1\n");
    printf("1*2= 2 2*2= 4\n");
    printf("1*3= 3 2*3= 6 3*3= 9\n");
    printf("1*4= 4 2*4= 8 3*4=12 4*4=16\n");
    printf("1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25\n");
    printf("1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36\n");
    printf("1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49\n");
    printf("1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64\n");
    printf("1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81\n");
return 0;
}

循环

/*
 * Author: Dduo 
 * Date: 2024-10-8
 * Description: 新生培训day1 
 */

#include <stdio.h>

int main() {
    int i, j;
    
    for (i = 1; i <= 9; i++) {
        for (j = 1; j <= i; j++) {
            printf("%d*%d=%2d ", j, i, j * i);
        }
        printf("\n"); // 每一行结束后换行
    }

    return 0;
}

D

循环

/*
 * Author: Dduo 
 * Date: 2024-10-8
 * Description: 新生培训day1 
 */

#include<stdio.h>
int main(){
	int n;
	scanf("%d",&n);
	while(n--){
		int a;
		int b;
		scanf("%d %d",&a,&b);
		printf("%d \n",a+b);
	}
}

函数

/*
 * Author: Dduo 
 * Date: 2024-10-8
 * Description: 新生培训day1 
 */

#include<stdio.h>
void solve(){
	int a;
	int b;
	scanf("%d %d",&a,&b);
	printf("%d\n",a+b);
}
int main(){
	int n;
	scanf("%d",&n);
	while(n--){
		solve();
	}
}

E

判断

/*
 * Author: Dduo 
 * Date: 2024-10-8
 * Description: 新生培训day1 
 */

#include<stdio.h>
int main(){
    int a,b;
    scanf("%d",&a);
    b=a%100;
    if(2<b&&b<6){
        printf("spring");
    }
    if(5<b&&b<9){
        printf("summer");
    }
    if(8<b&&b<12){
        printf("autumn");
    }
    if(b==12&&b<3){
        printf("winter");
    }
    return 0;
}

switch

/*
 * Author: Dduo 
 * Date: 2024-10-8
 * Description: 新生培训day1 
 */

#include <stdio.h>

int main() {
    int a, b;
    scanf("%d", &a);
    b = a % 100;

    switch (b) {
        case 3: // fall into spring
        case 4:
        case 5:
            printf("spring\n");
            break;
        case 6: // fall into summer
        case 7:
        case 8:
            printf("summer\n");
            break;
        case 9: // fall into autumn
        case 10:
        case 11:
            printf("autumn\n");
            break;
        case 12: // winter case
        case 1:
        case 2:
            printf("winter\n");
            break;
        default:
            // If b is not in the range of 1 to 12, you can handle it here
            break;
    }
    
    return 0;
}

F

/*
 * Author: Dduo 
 * Date: 2024-10-8
 * Description: 新生培训day1 
 */

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


void solve();

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

    while (t-- > 0) {
        solve();
    }

    return 0;
}

void solve() {
    int n;
    scanf("%d", &n);
    
    if (n == 1) {
        printf("No\n");
    } else {
        int is_prime = 1;
        for (int i = 2; i <= sqrt(n); i++) {
            if (n % i == 0) {
                is_prime = 0;
                break;
            }
        }
        if (is_prime) {
            printf("Yes\n");
        } else {
            printf("No\n");
        }
    }
}

G

/*
 * Author: Dduo 
 * Date: 2024-10-8
 * Description: 新生培训day1 
 */

#include <stdio.h>


int main() {
    char x;
    scanf(" %c", &x); // 注意空格以处理前导空格
    char temp = 'A';
    int a = (int)x - 64;

    for (int i = 1; i <= a; i++) {
        // 打印前导空格
        for (int i1 = 1; i1 <= a - i; i1++) {
            printf(" ");
        }
        // 打印递增部分
        for (int i2 = 1; i2 <= i; i2++) {
            printf("%c", temp);
            temp++;
        }
        temp -= 1;

        // 打印递减部分
        for (int i3 = 1; i3 <= i - 1; i3++) {
            temp -= 1;
            printf("%c", temp);
        }
        printf("\n");
    }

    return 0;
}

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

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

相关文章

【2024.10.8练习】宝石组合

题目描述 题目分析 由于是求最值&#xff0c;原本考虑贪心&#xff0c;但由于算式过于复杂&#xff0c;首先考虑对算式化简。 进行质因数分解&#xff1a; 因此: 不妨设对于每个&#xff0c;&#xff0c;则上式可化简为&#xff1a; 即 用Vene图也可以求出同样结果。 可是以…

DepthB2R靶机打靶记录

一、靶机介绍 下载地址&#xff1a;https://download.vulnhub.com/depth/DepthB2R.ova 二、信息收集 根据靶机主页显示&#xff0c;确认靶机ip为192.168.242.132 端口扫描 nmap -p- -A 192.168.242.132 发现只开放了8080端口 用dirsearch扫个目录 apt-get update apt-get …

胤娲科技:机械臂「叛逃」记——自由游走,再悄然合体

夜深人静&#xff0c;你正沉浸在梦乡的前奏&#xff0c;突然意识到房间的灯还亮着。此刻的你&#xff0c;是否幻想过有一只无形的手&#xff0c;轻盈地飘过&#xff0c;帮你熄灭那盏碍眼的灯&#xff1f; 又或者&#xff0c;你正窝在沙发上&#xff0c;享受电视剧的紧张刺激&am…

RKMEDIA画面质量调节-QP调节

QP是在视频采集编码过程中的量化参数&#xff0c;其值与画面质量成反比&#xff0c;即QP值越大画面质量越小&#xff0c;其具体调整方法如下&#xff1a; typedef struct rkVENC_RC_PARAM_S {RK_U32 u32ThrdI[RC_TEXTURE_THR_SIZE]; // [0, 255]RK_U32 u32ThrdP[RC_TEXTURE_TH…

一致性哈希算法解析

1. 哈希算法 想象我们的网络世界是一个巨大的环形摩天轮&#xff0c;上面有无数的座位&#xff0c;每个座位都代表了一个存储空间。现在&#xff0c;我们需要将三万张照片安排到这个摩天轮的三台机器上。这些机器我们可以想象成三个大车厢&#xff0c;每个车厢可以装载一部分照…

GIS专业的就业前景

地理信息系统&#xff08;GIS&#xff09;作为一门跨学科的领域&#xff0c;随着技术的发展和应用领域的拓宽&#xff0c;其就业前景日益广阔。GIS专业毕业生可以在多个行业中找到合适的职位&#xff0c;并且随着经验的积累&#xff0c;薪资和职业发展空间都相当可观。 1. 就业…

怎么把图片压缩小一点?几个小技巧帮助你轻松压缩图片大小

怎么把图片压缩小一点&#xff1f;几个小技巧帮助你轻松压缩图片大小 压缩图片大小是许多用户在处理照片时的常见需求&#xff0c;特别是在需要上传图片到网页、发送电子邮件或储存时&#xff0c;减小文件大小可以大大提高效率。以下是五款可以帮助你轻松压缩图片大小的软件&a…

能不能给我讲讲redis中的列表

写在文章开头 本文将从redis源码的角度直接分析列表操作指令,因为大部分指令操作细节区别不是很大,同时为了更专注于列表逻辑的分析,所以本文笔者将以双向链表这个数据结构为核心对lrange、lindex、llen、rpush、lpop几个操作展开介绍,希望对你有帮助。 Hi,我是 sharkChi…

泛微OA设置多个人力资源审批人员

泛微OA设置节点审批人员在不同条件下必须都审批才能过流程 在泛微OA中设置审批人员可以有多个设置方式&#xff0c;大部分情况可以根据会签和非会签控制是否需要所有人都审批&#xff0c;例如&#xff1a; 这里选择的会签就是需要这四个人都必须审批流程&#xff0c;这个流程…

台灯哪种灯光对眼睛好?保护眼睛要选央视公认最好的护眼灯

根据最新的文献当中的近视人群的数据我们发现&#xff0c;亚洲人的近视患病率更高&#xff0c;为70-90%&#xff0c;而美国人和欧洲人的近视患病率为30-40%&#xff0c;也就是说&#xff0c;近视的发病率与种族有关。其次跟近视相关的环境因素有很多&#xff0c;主要有近距离工…

微服务架构Gin-etcd-gRPC接合的入门实践

最近在学习微服务&#xff0c;先后学习gRPC、etcd。学习过这两个技术之后&#xff0c;结合Gin框架&#xff0c;简单实现了一个微服务的小demo了。 以下是各技术在微服务架构中的功能。 Gin框架作为网关&#xff0c;外部请求的统一出口。负责将外部的HTTP请求转化为RPC请求&…

伦敦金实时行情决策辅助!

在伦敦金实时交易的过程中&#xff0c;投资者主要依赖技术分析来辅助自己的投资决策。与基本面分析不同&#xff0c;技术分析侧重于研究金价的走势和市场行为&#xff0c;通过图表和技术指标来预测未来的市场走势。常用的技术分析方法包括&#xff1a; 趋势线和支撑阻力位&…

使用AutoDL安装Mamba官方代码

使用AutoDL安装Mamba 租界的云服务器使用环境ubuntu22.04, cuda 11.8, cudnn8.9 python 3.10 torch2.10 远程连接验证安装条件 使用Pycharm连接远程的云GPU服务器 使用nvidia-smi 和 nvcc -V python conda info-e来验证云主机是否具有安装的条件。 conda创建虚拟环境并安装pyt…

MATLAB - 浮动基座机器人的逆运动学

系列文章目录 前言 本例演示如何解决以浮动底座为模型的机器人的逆运动学问题。浮动底座机器人可以在空间中自由平移和旋转&#xff0c;具有六个自由度。浮动基座机器人的逆运动学问题适用于空间应用&#xff0c;即使用安装在浮动和致动基座上的机械臂在空间操纵物体&#xff0…

鸿蒙开发之ArkUI 界面篇 二十二 层叠布局 Stack

Stack语法格式如下&#xff0c;其实鸿蒙的容器组件的语法都是一样的&#xff0c;只是实现效果和和容器组件的名字不一样而已。 与绝对定位相比&#xff0c;实现更简单些&#xff0c;绝地定位更灵活&#xff0c;如果需要调整子组件的对其方式&#xff0c;需要这样添 加&#xf…

如何使用 WSL 在 Windows 上安装 Linux

如何使用 WSL 在 Windows 上安装 Linux 文章目录 如何使用 WSL 在 Windows 上安装 Linux前言安装WSL命令修改DNS网络右键打开网络和internet设置更改适配器选项属性 前言 在Windows计算机上同时访问Windows和Linux系统的功能&#xff0c;有利于大家学习Linux系统。 版本要求Wi…

Rethinking the Localization in Weakly Supervised ObjectLocalization

论文名称&#xff1a;Rethinking the Localization in Weakly Supervised Object Localization 论文地址&#xff1a;Rethinking the Localization in Weakly Supervised Object Localization (arxiv.org) 1.背景 最近&#xff0c;将WSOL分成两部分(与类无关的对象定位和对象…

Ansible 工具从入门到使用

1. Ansible概述 Ansible是一个基于Python开发的配置管理和应用部署工具&#xff0c;现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点&#xff0c;Pubbet和Saltstack能实现的功能&#xff0c;Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主…

恶意软件基础知识——恶意软件命名

计算机病毒(Computer Virus)指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据&#xff0c;影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。 ——《中华人民共和国计算机信息系统安全保护条例》 恶意软件的定义 恶意软件是一个用来描述恶意应用程序…

SQL进阶技巧:如何优化NULL值引发的数据倾斜问题?

目录 0 场景描述 1 问题分析 1.1 问题剖析 1.2 解决方案 2 小结 0 场景描述 实际业务中有些大量的null值或者一些无意义的数据参与到计算作业中,表中有大量的null值,如果表之间进行join操作,就会有shuffle产生,这样所有的null值都会被分配到一个reduce中,必然产生数…