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

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

 #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

 

#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个元素删除

 #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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

披星戴月的贾维斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值