《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小时内删除。
发表评论