《c语言程序设计》
一、利用matlab(或其他任何方式)生成100个随机数,并编制C语言程序进行从小到大排序。
1、生成的随机数必须存放在文件中(.txt),在程序中读取文件数据(文件操作)
2、利用子函数实现排序算法(任意排序算法均可),在主函数中调用(函数调用)
3、必须利用指针存放数据,进行排序操作(指针操作)
答:源程序
//
// main.c
// 002、C语言随机数排序
//
// Created by on 2020/3/9.
// Copyright © 2020 All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
void Sort(int arr[],int length);
int main(int argc, const char * argv[]) {
  //1.生成100个随机数,并存入桌面文件
  int ret = 0;
  srand((unsigned int)time(NULL));
  FILE *fpWrite=fopen("/Users/yangtuan/Desktop/随机数.txt","w");
  if(fpWrite==NULL)
  {
    return 0;
  }
  for(int i=0; i<100; i++)
  {
    ret = rand()%1000;
    fprintf(fpWrite,"%d ",ret);
  }
  fclose(fpWrite);
  //2.从桌面文件中读取刚才存入的数据
  int a[100]={0};
  FILE *fpRead=fopen("Users/yangtuan/Desktop/随机数.txt","r");
  if(fpRead==NULL)
  {管道接口类型有哪些
    return 0;
  }
  for(int i=0;i<100;i++)
  {
    fscanf(fpRead,"%d ",&a[i]);
    printf("%d ",a[i]);
  }
  getchar();
  printf("排序前:");
  for (int i = 0; i < 100; i++) {
    printf("%d ",a[i]);
  }
  //3.调用排序函数
  Sort(a,100);
  printf("\n");
  printf("排序后:");
  for(int i = 0;i < 100; i++){
    printf("%d ",a[i]);
  }
  printf("\n");
linux易于移植的原因>负数补码
  return 0;
}
//选择排序法
void Sort(int arr[],int length){
  int i,j,temp;
  int min=0;
  int index;
  for(i=0;i<length;i++){
    index =i;
    min = arr[i];
    for(j=i;j<length;j++){
      if(min>arr[j]){冒泡排序代码c语言
        index = j;
        min = arr[j];
      }
    }
    if(index!=i){
      temp = arr[i];
      arr[i]=arr[index];
      arr[index] = temp;
    }
  }
}
程序运行截图
二、将冒泡排序过程单独写成一个函数,再在主函数中通过调用该函数实现对任意输入的多个数据(数据个数不超过100个)进行排序,并输出排序结果。
答:源程序:
//
//  main.c免费cms自助建站系统
//  001、C语言冒泡排序法
//
/
/  Created by on 2020/3/9.
//  Copyright © 2020 . All rights reserved.
//linux服务器工具
#include <stdio.h>
//冒泡排序法
void bubbleSort(int R[], int n)
{
    int i,j,temp;
  for (i=0;i<n-1;i++){
        for (j=0;j<n-1;j++){
            if (R[j]>R[j+1]) //冒泡排序法,升序排列
            {
                temp=R[j];
                R[j]=R[j+1];
                R[j+1]=temp;
            }
        }
    }
    printf("按照升序排序输出为:\n");
    for (i=0;i<n;i++){ //升序输出
        printf("%d ",R[i]);
    }
    printf("\n");
    printf("按照降序排序输出为:\n");
    for (i=n-1;i>=0;i--){//降序输出
        printf("%d ",R[i]);
    }
    printf("\n");
}
//主函数
int main(int argc, const char * argv[]) {
   
    int n,a[100],i;
    printf("请输入数据的总个数:\n");
    scanf("%d",&n);//输入数据的个数
   
    if (n <= 0) {
        printf("输入数字的个数不能小于1个\n");
        return 0;
    }
   
    if (n >100) {
        printf("输入数字的个数不能大于100个\n");
        return 0;
    }
   
    printf("请输入%d个数:\n",n);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。