3个回答
展开全部
//取随机时间就可以了
# include <stdio.h>
# include <stdlib.h>//取随机数
# include <time.h>//时间函数头文件
int main(void)
{
int i,j,t;
float sum[40];//取随机数做谜底
srand((float)time(0));//用现行时间函数返回值 置随机种子
//answer = rand()%100+1;//将随机数的末尾2位数取出来 + 1 相当于 99 + 1 =随机数 最大100;
for(i = 0; i < 40; i++)
{
sum[i] = rand()%100+1;
}
for (i = 0; i < 40; i++)
for(j = i+1 ; j < 40; j++)
{
if(sum[i] > sum[j])
{
t = sum[i];
sum[i] = sum[j];
sum[j] = t;
}
}
for(i = 0; i < 40; i++)
{
printf("%6.1f\n",sum[i]);
}
return 0;
}
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int const N = 40;
void SelectSort(float a[], int n) {
int i,j,k;
float t;
for(i = 0; i < n - 1; ++i) {
k = i;
for(j = i + 1; j < n; ++j) {
if(a[k] < a[j])
k = j;
}
if(i != k) {
t = a[i];
a[i] =a[k];
a[k] = t;
}
}
}
void Show(float a[], int n) {
int i;
for(i = 0; i < n; ++i) {
if(i && i % 10 == 0) printf("\n");
printf("%5.2f ",a[i]);
}
printf("\n");
}
void main() {
int i;
float a[N];
srand(time(NULL));
for(i = 0; i < N; ++i)
a[i] = (rand()%1001 + 10)/100.0f;
printf("排序前:\n");
Show(a,N);
SelectSort(a,N);
printf("\n排序后:\n");
Show(a,N);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
/*选择排序*/
void arr_sort(float arr[],int num){
int i,j;
float k;
for(i = 0;i < num-1;++i){
for(j = i+1;j < num;++j){
if(arr[i] > arr[j]){
k = arr[j];
arr[j] = arr[i];
arr[i] = k;
}
}
}
}
/*打印数组*/
void arr_print(float arr[],int num){
int i;
for(i = 0;i < 40;++i){
printf("%g ",arr[i]);
}
printf("\n");
}
int main(int argc,char* argv[]){
int i;
float arr[40];
srand(time(0));
for(i = 0;i < 40;++i){
arr[i] = (float)(rand() % 100);
}
arr_print(arr,40);//随机数组
arr_sort(arr,40);//选择排序
arr_print(arr,40);//排序后数组
printf("\n");
return 0;
}
PS:运行了,没错!想看结果,把40换成10比较明显
#include<stdlib.h>
#include<time.h>
/*选择排序*/
void arr_sort(float arr[],int num){
int i,j;
float k;
for(i = 0;i < num-1;++i){
for(j = i+1;j < num;++j){
if(arr[i] > arr[j]){
k = arr[j];
arr[j] = arr[i];
arr[i] = k;
}
}
}
}
/*打印数组*/
void arr_print(float arr[],int num){
int i;
for(i = 0;i < 40;++i){
printf("%g ",arr[i]);
}
printf("\n");
}
int main(int argc,char* argv[]){
int i;
float arr[40];
srand(time(0));
for(i = 0;i < 40;++i){
arr[i] = (float)(rand() % 100);
}
arr_print(arr,40);//随机数组
arr_sort(arr,40);//选择排序
arr_print(arr,40);//排序后数组
printf("\n");
return 0;
}
PS:运行了,没错!想看结果,把40换成10比较明显
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询