定义一个数组存放100个整数元素,元素值随机生成,利用冒泡排序法对这100个数进行从大到小的排序

定义一个数组存放100个整数元素,元素值随机生成,利用冒泡排序法对这100个数进行从大到小的排序(用math.h和rand函数)

用srand产生种子,rand产生随机数

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int main()
{
    int a[100],i,j,t;
    srand();
    for(i=0;i<100;i++)
        a[i] = rand();
    for(i=0;i<99;i++)
        for(j=0;j<99-i;j++)
        {
            if(a[j] < a[j+1])
            {
                t = a[j];
                a[j] = a[j+1];
                a[j+1] = t;
            }
        }
    for(i=0;i<100;i++)
        printf("%d ",a[i]);
}

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7778758
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:读取文件,每行不超过100个字符,输出每行中字母最多的单词的字母数
  • 以下回答由chatgpt基于相关博客总结生成:
    使用math.h和rand函数生成一个随机的包含100个整数元素的数组:
    1. 包含头文件math.h和stdio.h
    2. 用srand函数产生随机数的种子,可以使用time()函数得到当前时间作为种子
    3. 使用循环生成100个随机数,范围为1到1000,存入数组中
    4. 冒泡排序,从大到小排序,可以使用双重循环进行比较交换,最后得到排好序的数组
    
    具体代码如下:
    #include <stdio.h>
    #include <math.h>
    #include <time.h>
    
    void swap(int *a, int *b){
        int temp = *a;
        *a = *b;
        *b = temp;
    }
    
    void bubble_sort(int arr[], int len){
        for(int i=0; i<len-1; i++){
            for(int j=i+1; j<len; j++){
                if(arr[i] < arr[j]){
                    swap(&arr[i], &arr[j]);
                }
            }
        }
    }
    
    int main(){
        int num[100];
        srand((unsigned int)time(NULL)); // 产生随机数种子,使用当前时间
        for (int i=0; i<100; i++){
            num[i] = rand() % 1000 + 1; // 生成1到1000的随机数
        }
        bubble_sort(num, 100); // 冒泡排序
        for (int i=0; i<100; i++){
            printf("%d ", num[i]); // 输出排序好的数组
        }
        return 0;
    }
    

#include <time.h>
#include <stdlib.h>
#include <stdio.h>

#define NUM 100

void bubble_sort(int arr[], int len)
{
    int temp, flag = 0;
    for (int i = 0; i < len - 1; i++)
    {
        flag = 1;
        for (int j = 0; j < len - 1 - i; j++)
        {
            if (arr[j] < arr[j + 1])
            {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
                flag = 0;
            }
        }
        if (flag)
            break;
    }
}

int main()
{
    srand((unsigned)time(NULL));
    int arr[NUM];
    for (int i = 0; i < NUM; i++)
    {
        arr[i] = rand();
    }
    bubble_sort(arr, NUM);

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

    system("pause");
    return 0;
}