鱼C论坛

 找回密码
 立即注册
查看: 2199|回复: 3

Dev-c++

[复制链接]
发表于 2021-11-9 18:03:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目:一个具有 15 个整型数组元素的一维数组 A。 实现以下功能:
1)使用 srand()和 rand()函数初始化该一维数组,使其每个数组 元素在-100 到 200 之间(含-100 和 200);
2)在显示器上显示所有生成的数组元素值;
3)对该数组按照由小到大(或由大到小)的顺序进行排序(排序方 法不限),并在显示器上显示排序后的数组;
4)删除下标为 10 的数组元素值,并在显示器上显示删除后的结果。

用子函数完成各分功能。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-9 18:38:00 | 显示全部楼层
本帖最后由 jackz007 于 2021-11-9 18:53 编辑
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void show(int d[] , int n)
{
        for(int i = 0 ; i < n ; i ++) printf("%4d" , d[i])       ;
        printf("\n")                                             ;
}

void init(int d[] , int n)
{
        time_t t                                                 ;
        int i , j , k                                            ;
        srand((unsigned)time(& t))                               ;
        for(i = 0 ; i < n ; i ++) d[i] = rand() % 300 - 100 + 1  ;
}

void sort(int d[] , int n)
{
        int i , j , t                   ;
        for(i = 0 ; i < n - 1 ; i ++) {
                for(j = i + 1 ; j && d[j] < d[j - 1] ; j --) {
                        t = d[j - 1]    ;
                        d[j - 1] = d[j] ;
                        d[j] = t        ;
                 }
        }
}

int del(int d[] , int n , int a)
{
        int k                                                                 ;
        if(a < n) {
                for(k = 0 ; k < n - a - 1 ; k ++) d[a + k] = d[a + k + 1]     ;
                n --                                                          ;
        }
        return n                                                              ;
}

int main(void)
{
        int A[15] , n = 15                                                    ;
        init(A , n)                                                           ;
        show(A , n)                                                           ;
        sort(A , n)                                                           ;
        show(A , n)                                                           ;
        n = del(A , n , 10)                                                   ;
        show(A , n)                                                           ;
}
        编译、运行实况:
D:\0002.Exercise\C>g++ -o x x.c

D:\0002.Exercise\C>x
 108 -10  37  38  42 194 -57 -22 102 -16 -74 127 106 -87 -25
 -87 -74 -57 -25 -22 -16 -10  37  38  42 102 106 108 127 194
 -87 -74 -57 -25 -22 -16 -10  37  38  42 106 108 127 194

D:\0002.Exercise\C>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-9 19:09:55 | 显示全部楼层
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-9 19:44:25 | 显示全部楼层
ZXPoo 发表于 2021-11-9 17:45
可以用低阶一点的方法写吗,看不太懂

以下已经是我的简单代码,希望对你有帮助
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

/*---------------这是排序函数----------------*/
int sort(const void * elem1, const void * elem2) // 定义函数:用于进行排序
{
    int f = *((int*)elem1);
    int s = *((int*)elem2);
    if (f > s) return  1;
    if (f < s) return -1;
    return 0;
}

int main()
{
    /*------------------创建数组-----------------*/
    int arr[15]; // 定义一个具有 15 个整数的数组
    srand((unsigned)time(0)); // 随机种子
    for(int i = 0; i < 15; i++) arr[i] = rand()%(301)-100; // 数组赋值随机数 -100 至 200 之间,[a, b] = rand()%(b-a))+a)
    for(int i = 0; i < 15; i++) printf("%d ", arr[i]); // 打印数组
    printf("\n"); // 换行
    
    /*------------------排序-----------------*/
    qsort(arr, sizeof(arr)/sizeof(*arr), sizeof(*arr), sort); // 排序
    for(int i = 0; i < 15; i++) printf("%d ", arr[i]); // 打印数组
    printf("\n"); // 换行
    
    /*------------------删除元素-----------------*/
    for(int i = 10; i < 15; i++) arr[i] = arr[i+1]; // 删除下标为 10 的数组元素值
    for(int i = 0; i < 14; i++) printf("%d ", arr[i]); // 打印数组
    return 0;
}
输出结果:
163 -68 42 57 -93 -23 160 159 10 165 144 -2 106 191 -24 
-93 -68 -24 -23 -2 10 42 57 106 144 159 160 163 165 191 
-93 -68 -24 -23 -2 10 42 57 106 144 160 163 165 191 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-21 13:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表