C 语言学习-05【数组】

1、一维数组元素的操作

输入一个数,按原来排序的规律将它插入到一个一排列好的数组中:

#include <stdio.h>

int main() {
    int i, data, a[10] = {2, 3, 6, 9, 11, 12, 14, 17, 19};
    printf("Primitive series: \n");
    for (i = 0; i < 9; i++) {
        printf("%d ", a[i]);
    }
    printf("\n");
    printf("Please enter the data you want to insert: \n");
    scanf("%d", &data);
    for (i = 8; i >= 0; i--) {
        if (a[i] < data) {
            for (int j = 8; j > i; j--) {
                a[j + 1] = a[j];
            }
            a[i + 1] = data;
            break;
        } else {
            continue;
        }
    }
    printf("The sequence after inserting data: \n");
    for (i = 0; i < 10; i++) {
        printf("%d ", a[i]);
    }
    return 0;
}
  • 运行结果:
    在这里插入图片描述

对某城市五月份每天的气温进行统计,找出最大值及对应的是那一天

#include <stdio.h>

int main() {
    int i, index, max, a[31];
    printf("enter data: \n");
    for (i = 0; i < 31; i++) {
        scanf("%d", &a[i]);
    }
    max = a[0];
    index = 0;
    for (i = 1; i < 31; i++) {
        if (a[i] > max) {
            max = a[i];
            index = i;
        }
    }
    printf("max = %d, index = %d", max, index + 1);
    return 0;
}
  • 运行结果:
    在这里插入图片描述

有 10 个同学的成绩,要求把他们的成绩从高到低排序

#include <stdio.h>

int main() {
    int score[10];
    int i, j, t;
    printf("Please enter the scores of 10 students: \n");
    for (i = 0; i < 10; i++) {
        scanf("%d", &score[i]);
    }
    printf("\n");
    for (j = 0; j < 9; j++) {
        for (i = 0; i < 9 - j; i++) {
            if (score[i] < score[i + 1]) {
                t = score[i];
                score[i] = score[i + 1];
                score[i + 1] = t;
            }
        }
    }
    printf("Well-ranked grades: \n");
    for (i = 0; i < 10; i++) {
        printf("%d ", score[i]);
    }
    printf("\n");
}
  • 运行结果:
    在这里插入图片描述

2、一维数组应用举例

统计获选人的选票:

#include <stdio.h>

void main () {
    int x, n[4] = {0};
    printf("Please enter the candidate number: ");
    scanf("%d", &x);
    while (x) {
        n[x]++;
        printf("Please enter the candidate number: ");
        scanf("%d", &x);
    }
    printf("\nStatistical result: \n");
    for (x = 1; x <= 3; x++) {
        printf("The number %d candidate has %d votes\n", x, n[x]);
    }
}
  • 运行结果:
    在这里插入图片描述

有一个大小为 50 的整数数组,里面的数字是随机生成的,均介于 1 到 99 之间,但是数字有重复,需要去除数组中的数字进行存储

#include <stdio.h>
#include <stdlib.h> // srand(), rand()
#include <time.h> // time()

int main() {
    int a[50], b[50], i, j, temp, t, count;
    srand((unsigned int)time(NULL)); // 设置当前时间为种子
    for (i = 0; i < 50; i++) {
        a[i] = rand() % 100 + 1;
    }
    printf("Randomly generated array: \n");
    for (i = 0; i < 50; i++) {
        printf("%4d", a[i]);
        if ((i + 1) % 10 == 0) {
            printf("\n");
        }
    }
    for (i = 0; i < 49; i++) {
        for (j = 0; j < 50; j++) {
            if (a[i] > a[j]) {
                temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    }
    printf("The array is sorted from smallest to largest: \n");
    for (i = 0; i < 50; i++) {
        printf("%4d", a[i]);
        if ((i + 1) % 10 == 0) {
            printf("\n");
        }
    }
    t = 0;
    for (i = 0; i < 50;) {
        b[t++] = a[i];
        for (j = 1;;j++) {
            if (a[i] == a[i + j]) {
                continue;
            }
            if (a[i] != a[i + j]) {
                break;
            }
        }
        i += j;
    }
    count = t;
    printf("The array after deduplication contains %d data\n", count);
    for (i = 0; i < count; i++) {
        printf("%4d", b[i]);
        if ((i + 1) % 10 == 0) {
            printf("\n");
        }
    }
    return 0;
}
  • 运行结果:
    在这里插入图片描述

3、字符数组的初始化

讲一句话中的每个英文单词的瘦子米转换成大写:

#include <stdio.h>

int main() {
    char str[10] = {'g', 'o', 'o', 'd', ' ', 'l', 'u', 'c', 'k', '!'};
    int i, t = 0;
    for (i = 0; i < 10; i++) {
        printf("%c", str[i]);
    }
    printf("\n");
    for (i = 0; i < 10; i++) {
        if (t == 0) {
            if (str[i] == ' ') {
                t = 0;
                continue;
            } else {
                str[i] -= 32;
                t = 1;
            }
        } else {
            if (str[i] == ' ') {
                t = 0;
                continue;
            }
        }
    }
    for (i = 0; i < 10; i++) {
        printf("%c", str[i]);
    }
    return 0;
}
  • 运行结果
    在这里插入图片描述

4、字符串和字符串结束标志

输出字符串的有效长度:

#include <stdio.h>

int main() {
    char str[] = "I am a student.";
    int i, count = 0;
    for (i = 0; str[i] != '\0'; i++) {
        putchar(str[i]);
        count++;
    }
    printf("\nThe valid length of the string is %d", count);
    return 0;
}
  • 运行结果:
    在这里插入图片描述

5、字符串输入函数

输入一段话,同级其中单词的个数

#include <stdio.h>

int main() {
    char str[100];
    int i = 0, count = 0, flag = 0;
    puts("Please enter a paragraph: ");
    gets(str);
    while (str[i] != '\0') {
        if (flag == 0) {
            if (str[i] == ' ') {
                flag = 0;
            } else {
                count++;
                flag = 1;
            }
        } else {
            if (str[i] == ' ') {
                flag = 0;
            }
        }
        i++;
    }
    printf("There are %d English words in this passage\n", count);
    return 0;
}
  • 运行结果:
    在这里插入图片描述

6、字符串操作方法

原型功能
int strlen(char *d)返回字符串 d 的长度,不包括终止符 NULL
char *strcat(char *d,char *s)把字符串 s 接到字符串 d 后面,返回字符串 d
char *strncat(char *d,char *s,int n)把字符串 s 中至多 n 个字符接到字符串 d 后面;
如果 s 小于 n 个字符,用 ‘\0’ 补上,返回字符串 d
char *strcpy(char *d,char *s)复制字符串 s 到字符串 d,返回字符串 d
char *strncpy(char *d,char *s,int n)复制字符串 s 中至多 n 个字符到字符串 d;
如果 s 小于 n 个字符,用 ’\0’ 补上,返回字符串 d
void *memcpy(void *d,void *s,int n)从 s 复制 n 个字符到 d,返回字符串 d
void *memmove(void *d,void *s,int n)和 memcpy 相同,即使 d 和 s 部分相同也运行
int strcmp(char *d,char *s)比较字符串 d 和字符串 s。
如果 d < s,返回 -1;
如果 d > s,返回 1;
如果 d == s,返回 0.
int strncmp(char *d,char *s,int n)比较字符串 d 中至多 n 个字符和字符串 s。
如果 d < s,返回 -1;
如果 d > s,返回 1;
如果 d == s,返回 0.
int memcmp(void *d,void *s,int n)比较字符串 d 的前 n 个字符与 s,和 strcmp 返回值相同
char *strchr(char *d,char c)返回一个指向字符串 d 中字符 c 第 1 次出现的指针;
或者如果没有找到 c,则返回指向 NULL 的指针
char *strstr(char *d,char *s)返回一个指向字符串 d 中字符串 s 第 1 次出现的指针;
或者如果没有找到 s,则返回指向 NULL 的指针
void *memchr(void *d,char c,int n)返回一个指向被 d 所指向的 n 个字符中 c 第 1 次出现的指针;
或者如果没有找到 c,则返回指向 NULL 的指针
void *memset(void *d,char c,int n)使用 n 个字符 c 填充 void* 类型变量 d
void *strupr(char *p)字符串中字母转换成大写字母
void *strlwr(char *p)字符串中字母转换成小写字母

7、字符数组应用

输入 5 个同学的姓名,按字典顺序从小到大排序

#include <stdio.h>
#include <string.h>

int main() {
    char stu[5][20];
    char name[20];
    int i, j, t;
    puts("Please enter student name: ");
    for (i = 0; i < 5; i++) {
        gets(stu[i]);
    }
    puts("Lexicographic ordering: ");
    for (i = 1; i < 5; i++) {
        for (j = 0; j < 5 - i; j++) {
            if (strcmp(stu[j], stu[j + 1]) > 0) {
                strcpy(name, stu[j]);
                strcpy(stu[j], stu[j + 1]);
                strcpy(stu[j + 1], name);
            }
        }
    }
    for (i = 0; i < 5; i++) {
        puts(stu[i]);
    }
    return 0;
}
  • 运行结果:
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C 语言学习-1【基本语法】

1、符号常量 #define 符号常量名 常量 使用符号常量计算圆柱体的体积&#xff1a; #include <stdio.h> #define PI 3.1415926int main() {float r, h, volum;printf("Please enter the radius: ");scanf("%f", &r);printf("Please enter th…

【微服务】不同微服务之间用户信息的获取和传递方案

如何才能在每个微服务中都拿到用户信息&#xff1f;如何在微服务之间传递用户信息&#xff1f; 文章目录 概述利用微服务网关做登录校验网关转微服务获取用户信息openFeign传递微服务之间的用户信息 概述 要在每个微服务中获取用户信息&#xff0c;可以采用以下几种方法&#…

HarmonyOS入门 : 获取网络数据,并渲染到界面上

1. 环境搭建 开发HarmonyOS需要安装DevEco Studio&#xff0c;下载地址 : https://developer.huawei.com/consumer/cn/deveco-studio/ 2. 如何入门 入门HarmonyOS我们可以从一个实际的小例子入手&#xff0c;比如获取网络数据&#xff0c;并将其渲染到界面上。 本文就是基于…

SpringMVC总结 我的学习笔记

SpringMVC总结 我的学习笔记 一、SpringMVC简介1.MVC2.SpringMVC概述3. SpringMVC中的核心组件4.SpringMVC核心架构流程 二、SpringMVC框架实例具体实现使用注解实现 四、数据处理及跳转1.结果跳转方式2.处理器方法的参数与返回值处理提交数据数据显示到前端 五、RestFul风格1.…

Qml 模型-视图-代理(贰)之 动态视图学习

Repeater 元素适合有限的静态数据&#xff0c; QtQuick 提供了 ListView 和 GridView, 这两个都是基于 Flickable(可滑动) 区域的元素 &#xff0c; ListView 与 Repeater 相比&#xff0c; ListView 使用了一个 model&#xff0c; 使用delegate 来 实例化&#xff0c;并且在两…

rce代码层面

目录 RCE的分类Remote Code Execute 远程代码执⾏php Remote Command Execte 远程命令执⾏php shell的相关知识管道重定向fd反弹shell linux进程的创建c/php/python下的system()/popen()函数python的subprocess.call函数java的Runtime.getRuntime().exec和ProcessBuilder()命令…

一篇文章入门docker!

文章目录 DockerUbuntu 下 docker 安装安装docker运行docker Docker的常用命令帮助命令镜像命令容器命令其他常用命令小结 分层理解一、Docker镜像的分层结构二、UnionFS与镜像分层三、镜像层的具体内容四、镜像分层的好处五、容器层与镜像层的关系 如何提交一个自己的镜像 Doc…

【大数据学习 | HBASE】habse的表结构

在使用的时候hbase就是一个普通的表&#xff0c;但是hbase是一个列式存储的表结构&#xff0c;与我们常用的mysql等关系型数据库的存储方式不同&#xff0c;mysql中的所有列的数据是按照行级别进行存储的&#xff0c;查询数据要整个一行查询出来&#xff0c;不想要的字段也需要…

泛微E9 OA与金蝶云的差旅费报销接口集成

FD001-差旅费报销申请 泛微>金蝶--498 集成案例分享 在企业日常运营中&#xff0c;差旅费报销申请的处理效率直接影响到员工满意度和财务管理的精确性。为了实现泛微OA-Http系统与金蝶云星空平台之间的数据无缝对接&#xff0c;我们设计并实施了FD001-差旅费报销申请集成方…

鸿蒙开发:ArkUI Toggle 组件

ArkUI提供了一套完整的UI开发工具集&#xff0c;帮助开发者高效完成页面的开发。它融合了语言、编译器、图形构建等关键的应用UI开发底座&#xff0c;为应用的UI开发提供了完整的基础设施&#xff0c;包括简洁的UI语法、丰富的UI功能以及实时界面预览工具等&#xff0c;可以支持…

ONLYOFFICE 文档8.2更新评测:PDF 协作编辑、性能优化及更多新功能体验

文章目录 &#x1f340;引言&#x1f340;ONLYOFFICE 产品简介&#x1f340;功能与特点&#x1f340;体验与测评ONLYOFFICE 8.2&#x1f340;邀请用户使用&#x1f340; ONLYOFFICE 项目介绍&#x1f340;总结 &#x1f340;引言 在日常办公软件的选择中&#xff0c;WPS 和微软…

Webserver(5.6)服务器压力测试

目录 webbench是linux上一款知名的优秀的web性能压力测试工具。 测试处在相同硬件上&#xff0c;不同服务的性能以及在不同硬件上同一个服务的运行状况 展示服务器的两项内容&#xff1a;每秒钟响应请求数和每秒钟传输数据量 webbench首先fork多个子进程&#xff0c;每个子进程…

数据结构:顺序表(动态顺序表)

专栏说明&#xff1a;本专栏用于数据结构复习&#xff0c;文章中出现的代码由C语言实现&#xff0c;在专栏中会涉及到部分OJ题目&#xff0c;如对你学习有所帮助&#xff0c;可以点赞鼓励一下博主喔&#x1f493; 博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;数…

【ACM出版,九大高校联合举办, IEEE Fellow支持】2024年计算机视觉与艺术研讨会(CVA 2024,11月29-12月1日)

2024年计算机视觉与艺术研讨会&#xff08;CVA 2024&#xff09; 2024 Seminar on Computer Vision and Art 基本信息 会议官网&#xff1a;www.icadi.net 2024 Seminar on Computer Vision and Artwww.icadi.net(CVA为ICADI分会&#xff0c;网站沿用主会议&#xff1b;议程、…

若依框架-添加测试类-最新

1、在【ruoyi-admin】的pom.xml下添加依赖 <!-- 单元测试--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-test</artifactId><scope>test</scope></dependency><dependency>…

用 Python 从零开始创建神经网络(二)

用 Python 从零开始创建神经网络&#xff08;二&#xff09; 引言1. Tensors, Arrays and Vectors&#xff1a;2. Dot Product and Vector Additiona. Dot Product &#xff08;点积&#xff09;b. Vector Addition &#xff08;向量加法&#xff09; 3. A Single Neuron with …

信息安全工程师(76)网络安全应急响应技术原理与应用

前言 网络安全应急响应&#xff08;Network Security Incident Response&#xff09;是针对潜在或已发生的网络安全事件而采取的网络安全措施&#xff0c;旨在降低网络安全事件所造成的损失并迅速恢复受影响的系统和服务。 一、网络安全应急响应概述 定义&#xff1a;网络安全应…

JavaScript:点击导航栏未显示完整的tab自动滚动并显示完整

提醒 本文实例使用vue开发的 一、需求场景 开发商品分类页面需求如下&#xff1a; 顶部显示商品分类导航栏&#xff0c;可左右自由滑动&#xff0c;点击左边或右边未显示完整的tab自动滚动显示完整&#xff1b;点击顶部显示商品分类导航栏tab&#xff0c;下面列表数据显示对应的…

【C++】详解RAII思想与智能指针

&#x1f308; 个人主页&#xff1a;谁在夜里看海. &#x1f525; 个人专栏&#xff1a;《C系列》《Linux系列》 ⛰️ 丢掉幻想&#xff0c;准备斗争 目录 引言 内存泄漏 内存泄漏的危害 内存泄漏的处理 一、RAII思想 二、智能指针 1.auto_ptr 实现原理 模拟实现 弊端…

力扣: 144 二叉树 -- 先序遍历

二叉树 – 先序遍历 描述&#xff1a; 给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 示例&#xff1a; 先序遍历&#xff1a;根左右 何解&#xff1f; 1、递归 : 无需多言一看就懂 2、遍历法 中序查找时&#xff0c;最先出入的节点是左子树中的最左侧二叉…