C语言 随机数组排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 随机数组排序相关的知识,希望对你有一定的参考价值。
【题目】产生任意个 ( 个数由用户输入,至少100个 ) 个20到100之间的随机整数,然后统计数组中每个元素出现的次数,并按照元素升序排序输出统计结果。
#include "stdlib.h"#include "stdio.h"
main()
int i,j,k,a[10000],b[10000],n,t;
printf("please input the number of integer: ");
scanf("%d",&n);
for(i = 0; i < n; i++)
a[i] = random(80) + 20; /*生成数组*/
for(i = 0;i < n;i++) /*初始化元素数量*/
b[i] = 1;
for(i = 0; i < n; i++)
for(j = i + 1;j < n;j++)
if(a[i] == a[j])
b[i]++; /*计数*/
n--;
for(k = j;k < n;k++) /*去掉数组中重复值*/
a[k] = a[k + 1];
j--;
for(i = 1;i < n;i++) /*升序排序*/
for(j = 0;j < n - i;j++)
if(a[j] > a[j+1])
t = a[j];a[j] = a[j + 1];a[j + 1] = t;
t = b[j];b[j] = b[j + 1];b[j + 1] = t;
printf("\n Integer numbers\n");
for(i = 0;i < n;i++) /*输出*/
printf(" %d %d\n",a[i],b[i]);
getch();
参考技术A #include<stdio.h>
#include<stdlib.h>
void main()
int *a,n,i,j,k,c;
/* 输入数组大小、分配内存 */
printf("n=?");
scanf("%d",&n);
a=(int*)malloc(n*sizeof(int));
/* 产生随机数并输出 */
for(i=0; i<n; i++)
a[i]=20+rand()%81;
printf("%d ",a[i]);
printf("\n");
/* 排序 */
for(i=0; i<n-1; i++)
k=i;
for(j=i+1; j<n; j++)
if(a[k]>a[j])
k=j;
if(k!=i)
c=a[i], a[i]=a[k], a[k]=c;
/* 输出排序结果 */
for(i=0; i<n; i++)
printf("%d ",a[i]);
printf("\n");
/* 统计各元素个数并输出 */
i=0;
while(i<n)
k=a[i];
c=1;
while(k==a[++i])
c++;
printf("元素 %d 的个数:%d\n",k,c);
参考技术B #include<stdio.h>
#include<stdlib.h>
void main()
int a[10000];
int i,j,n,min,t,r=1;
printf("输入需要产生随机数的个数(大于100):");
scanf("%d",&n);
for(i=0;i<n;i++) /*产生随机数*/
a[i]=rand()%(80)+20;
for(i=0;i<n;i++) /*选择排序*/
min=i;
for(j=i+1;j<=n;j++)
if(a[j]<a[min]) min=j;
t=a[i];a[i]=a[min];a[min]=t;
for(i=0,t=a[0];i<n;i++) /*统计出现次数*/
if(a[i]==t)r++;
else
printf("%d 出现了%d次\n",t,r);
t=a[i];
r=1;
数组实验报告
C语言设计实验报告
实验项目:循环结构实验
姓名:杜鹏 实验地点:一教524 实验时间:5.27
一、实验目的与要求
1、掌握一维和多维数组的定义和数组元素的使用方法。
2、了解一维和多维数组初始化的方法。学习一维和多维数组的基本方法。掌握C语言提供的对字符串进行处理的基本函数库。
二、实验内容
实验一
1、用冒泡排序法排序十个随机数
2、实验代码
p>3、问题分析
主要是知道如何产生随机数,然后根据产生的随机数用数组排序。
实验二
1、写一个函数,并对产生的随机数排序
2、实验代码
3)问题分析
把第一个数和其余的数依次进行比较,得到最小的那一个把它和第一个换位置,然后再从第二个数开始比较,
实验三
1、杨辉三角的产生
2、实验代码
3)问题分析
用两个for循环确定好行和列的关系。
实验四
1、确定的年月日,来确定是该年的第几天
2、实验代码
3)问题分析
定义一个二维数组,然后根据闰年和平年的天数来进行计算
实验五
1、判断一个字符串是否为回文素数
2、实验代码
3)问题分析
在for循环的条件时不需要些i<=len,这样写会进行更多的循环,只需要i<=len/2就行。
四、实验小结
对于我来说,数组这方面掌握的还不够好,仍需加强这一方面的能力。对于之前所学习的仍然需要复习好。
以上是关于C语言 随机数组排序的主要内容,如果未能解决你的问题,请参考以下文章