(C语言)数组的深入理解和其他经典例题

简介: (C语言)数组的深入理解和其他经典例题

1.输入两个正整数m和n,求其最小公倍数


1669387796581.jpg

#include <stdio.h>
int main()
{
    int m, n, a, b;
    int i = 0;
    //变量初始化
    scanf("%d%d", &n, &m);
    //利用do和while循环i每次循环自加,i乘m,且b每次循环都对a取余,一旦取余为0,则循环结束,跳出循环,并且此时的m*i就是其最小公倍数
    do
    {
        i++;
        a = m * i;
        b = a % n;
    } while (b != 0);
    //do--while循环的好处是不需要条件,循环便能进行
    printf("%d", m * i);
    return 0;
}


2.输入1个数,并输出对应个数的水仙花数100<n<1000

1669387805110.jpg

#include<stdio.h>
int main()
{
    int n, a, b, c, num, l;
    l = 0;
    //num用来计数,控制循环变量
    scanf("%d", &num);
    //for循环,num表示输出的水仙花个数为多少,先初始化l=0
    for (n = 100; n <= 999 && l < num; n++)
    {
        a = n / 100;
        b = n / 10 % 10;
        c = n % 10;
        //计算n的每个位数的数字
        if (a * a * a + b * b * b + c * c * c == n)
        {
            printf("%d ", n);
            l++;
            //i++,当l>num时,循环条件不成立,跳出循环,就可以实现输入的值为多少,输出多少个水仙花数
        }
    }
    printf("\n");
    return 0;
}


3.将指定的数组中第k个元素删除

1669387837225.jpg

#include<stdio.h>
int main()
{
    int a[100] = {0};
    //定义一个数组,可以放100个字符,右边先初始化0;
    int i,n,k;
    scanf("%d%d", &n, &k);
    //for循环输入n个数,放进数组中;
    for (i = 0; i < n; i++) scanf("%d",& a[i]);
    //程序最重要的一部分,控制变量,因为是要删掉第k为,则令i=k;输出的数比原来的少一个i<n-1;并且循环每轮n--;输出行第k位替代了原先第k+1位
    for (i = k; i < n - 1; i++) a[i] = a[i + 1];
        n--;
    for (i = 0; i < n; i++) printf("%d ", a[i]);
    return 0;
}

4.编写代码,演示多个字符向两端移动,向中间汇聚(程序员的烂漫)

#include<stdio.h>
#include<string.h>
#include<windows.h>
int main()
{
    char arr[] = "abc";
    char arr1[] = "hello hengyi!!!";
    char arr2[] = "###############";
    int left = 0;
    int right = strlen(arr1) - 1;
    while (left <= right)
    {
        arr2[left] = arr1[left];
        arr2[right] = arr1[right];
        printf("%s\n", arr2);
        Sleep(1000);
        system("cls");
        left++;
        right--;
    }
    return 0;
}
相关文章
|
2月前
|
存储 C语言 C++
【C语言数组】
【C语言数组】
|
3天前
|
存储 编译器 C语言
【C语言】数组(一维、二维数组的简单介绍)
【C语言】数组(一维、二维数组的简单介绍)
|
1天前
|
存储 C语言
初识C语言4——数组
初识C语言4——数组
11 0
|
28天前
|
存储 编译器 C语言
【C语言基础考研向】09 一维数组
数组是一种有序集合,用于存储相同类型的数据,便于统一操作与管理。例如,将衣柜底层划分为10个格子存放鞋子,便于快速定位。在C语言中,数组定义格式为 `类型说明符数组名[常量表达式];`,如 `int a[10];` 表示定义了一个包含10个整数的数组。数组初始化时可以直接赋值,也可以部分赋值,且数组长度必须固定。数组在内存中连续存储,访问时需注意下标范围,避免越界导致数据异常。数组作为参数传递时,传递的是首地址,修改会影响原数组。
|
28天前
|
存储 C语言
【C语言基础考研向】10 字符数组初始化及传递和scanf 读取字符串
本文介绍了C语言中字符数组的初始化方法及其在函数间传递的注意事项。字符数组初始化有两种方式:逐个字符赋值或整体初始化字符串。实际工作中常用后者,如`char c[10]=&quot;hello&quot;`。示例代码展示了如何初始化及传递字符数组,并解释了为何未正确添加结束符`\0`会导致乱码。此外,还讨论了`scanf`函数读取字符串时忽略空格和回车的特点。
|
2天前
|
存储 编译器 C语言
【C语言篇】数组和函数的实践:扫雷游戏(附源码)
【C语言篇】数组和函数的实践:扫雷游戏(附源码)
8 0
|
3天前
|
编译器 C语言
【C语言】指针篇-深入探索数组名和指针数组- 必读指南(2/5)
【C语言】指针篇-深入探索数组名和指针数组- 必读指南(2/5)
|
1月前
|
存储 人工智能 C语言
C语言程序设计核心详解 第六章 数组_一维数组_二维数组_字符数组详解
本章介绍了C语言中的数组概念及应用。数组是一种存储同一类型数据的线性结构,通过下标访问元素。一维数组定义需指定长度,如`int a[10]`,并遵循命名规则。数组元素初始化可使用 `{}`,多余初值补0,少则随机。二维数组扩展了维度,定义形式为`int a[3][4]`,按行优先顺序存储。字符数组用于存储字符串,初始化时需添加结束符`\0`。此外,介绍了字符串处理函数,如`strcat()`、`strcpy()`、`strcmp()` 和 `strlen()`,用于拼接、复制、比较和计算字符串长度。
|
2月前
|
算法 C语言
C语言------数组
这篇文章是关于C语言数组的实训,包括一维数组、二维数组和字符数组的定义、赋值、输入、输出方法,并通过实例代码演示了数组的使用和一些基本算法,如冒泡排序。
C语言------数组
|
2月前
|
存储 编译器 程序员
七:《初学C语言》— 数组
【8月更文挑战第2天】本篇文章详细讲解了一维数组和二维数组的创建、使用和初始化及如何使用sizeof()计算数组中的元素个数。并附带了多个教学源码及代码练习
45 1
七:《初学C语言》— 数组