永发信息网

C语言 随机生成一组数据(300个数,<1000),对这组数据按从大到小顺序进行排序。

答案:3  悬赏:20  手机版
解决时间 2021-03-21 17:47
  • 提问者网友:蓝莓格格巫
  • 2021-03-21 02:32
要求:
先显示原来生成的这组数据;
然后显示排序后的结果(每行10个);
根据输入确定其中的第i个数据。 我做了这个,但是不知道怎么改成每行10个,能不能教我改下,谢谢!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int nums[301],num[301];
int x,t,i,j;
srand(time(NULL));
for (i=1;i<=300;i++)
{
nums[i] = rand();
num[i]=nums[i];
}

for (i=1;i<=300;i++)
{
x=i;
for (j=i+1;j<=300;j++)
if (nums[x]>nums[j]) x=j;
if (x!=i)
{
t=nums[x];
nums[x]=nums[i];
nums[i]=t;
}
}

for (i=1;i<=300;i++)
printf("%d\t%d\n",num[i],nums[i]);

return 0;
}
最佳答案
  • 五星知识达人网友:洒脱疯子
  • 2021-03-21 03:27
工具/数据分析/随机数发生器,在对话框中,变量个数,1,表示产生一列数据;随机数个数,根据你的需要输入;分布,选择你要的分布,比如“正态”分布;参数,分别输入,平均值0.026,标准差2;随机数基数,0;输出选项,输出区域,选一个单元格就可以了;确定。得到一组数据。
工具菜单没有,数据分析,应该采用工具/加载宏,进行加载,就可以用。
全部回答
  • 1楼网友:我住北渡口
  • 2021-03-21 05:55
int j=0; for (i=1;i<=300;i++){ printf("%d\t%d\n",num[i],nums[i]); j++; if(j%10==0){ printf("\n"); } }
  • 2楼网友:持酒劝斜阳
  • 2021-03-21 04:20
double 类生成随即比较麻烦 你可以这样 用rand()随即生成一个整数 在除以你要的小数位数 例如除以100就是两位小数 int ran() { double i=0.0; int temp=0; temp=rand()%1000+1; i=temp/100.0; } int main() { srand((int)time(null)); ran(); return 0; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯