fork download
  1. /*
  2. 2. 10000から999999のランダムな自然数を1000コ生成し、各数値と平均値との差をもとめ、その差が小さい順にその数値を  表示するプログラムを作成せよ。また、各数値は何番目に生成したかも表示する。
  3.  
  4.   例)1番目に平均との差が小さい数は680番目の数69383です。 平均値との差は10.505です。
  5. */
  6. #include <stdlib.h>
  7. #include <stdio.h>
  8.  
  9. typedef struct{
  10. int idx;
  11. int n;
  12. double sb;
  13. }et;
  14.  
  15. int et_comp(void* av, void* bv){
  16. et* a = (et*)av;
  17. et* b = (et*)bv;
  18. return a->sb == b->sb ? 0 : a->sb < b->sb ? -1 : 1;
  19. }
  20.  
  21. int rand2(int s, int e){
  22. return s + (int)(rand()*(e-s+1.0)/(1.0+RAND_MAX));
  23. }
  24.  
  25. int main(){
  26. const int sz=1000;
  27. int i;
  28. et v[sz];
  29. double sum=0;
  30. for(i=0; i<sz; i++){
  31. int n = rand2(10000,999999);
  32. v[i].idx=i;
  33. v[i].n = n;
  34. sum += n;
  35. }
  36. double avg=sum/sz;
  37. for(i=0; i<sz; i++){
  38. v[i].sb = abs(avg-v[i].n);
  39. }
  40. qsort(v, sz, sizeof(et), et_comp);
  41. //for(i=0; i<sz; i++){
  42. for(i=0; i<sz && i<100; i++){ //100行制限
  43. printf("%d番目に平均との差が小さい数は%d番目の数%dです。 平均値との差は%fです。\n", i+1, v[i].idx+1, v[i].n, v[i].sb);
  44. }
  45. return 0;
  46. }
  47.  
Success #stdin #stdout 0.02s 1852KB
stdin
Standard input is empty
stdout
1番目に平均との差が小さい数は778番目の数512335です。 平均値との差は708.000000です。
2番目に平均との差が小さい数は912番目の数511845です。 平均値との差は1198.000000です。
3番目に平均との差が小さい数は553番目の数515245です。 平均値との差は2201.000000です。
4番目に平均との差が小さい数は223番目の数515579です。 平均値との差は2535.000000です。
5番目に平均との差が小さい数は69番目の数517410です。 平均値との差は4366.000000です。
6番目に平均との差が小さい数は500番目の数508426です。 平均値との差は4617.000000です。
7番目に平均との差が小さい数は31番目の数517803です。 平均値との差は4759.000000です。
8番目に平均との差が小さい数は14番目の数518266です。 平均値との差は5222.000000です。
9番目に平均との差が小さい数は887番目の数507377です。 平均値との差は5666.000000です。
10番目に平均との差が小さい数は762番目の数519238です。 平均値との差は6194.000000です。
11番目に平均との差が小さい数は840番目の数519786です。 平均値との差は6742.000000です。
12番目に平均との差が小さい数は550番目の数519898です。 平均値との差は6854.000000です。
13番目に平均との差が小さい数は885番目の数520977です。 平均値との差は7933.000000です。
14番目に平均との差が小さい数は359番目の数522537です。 平均値との差は9493.000000です。
15番目に平均との差が小さい数は325番目の数503540です。 平均値との差は9503.000000です。
16番目に平均との差が小さい数は305番目の数503162です。 平均値との差は9881.000000です。
17番目に平均との差が小さい数は548番目の数522969です。 平均値との差は9925.000000です。
18番目に平均との差が小さい数は471番目の数523329です。 平均値との差は10285.000000です。
19番目に平均との差が小さい数は206番目の数502285です。 平均値との差は10758.000000です。
20番目に平均との差が小さい数は674番目の数501466です。 平均値との差は11577.000000です。
21番目に平均との差が小さい数は335番目の数501113です。 平均値との差は11930.000000です。
22番目に平均との差が小さい数は155番目の数525007です。 平均値との差は11963.000000です。
23番目に平均との差が小さい数は313番目の数501017です。 平均値との差は12026.000000です。
24番目に平均との差が小さい数は123番目の数500489です。 平均値との差は12554.000000です。
25番目に平均との差が小さい数は144番目の数526347です。 平均値との差は13303.000000です。
26番目に平均との差が小さい数は515番目の数499462です。 平均値との差は13581.000000です。
27番目に平均との差が小さい数は738番目の数527402です。 平均値との差は14358.000000です。
28番目に平均との差が小さい数は37番目の数498647です。 平均値との差は14396.000000です。
29番目に平均との差が小さい数は688番目の数528312です。 平均値との差は15268.000000です。
30番目に平均との差が小さい数は320番目の数497497です。 平均値との差は15546.000000です。
31番目に平均との差が小さい数は310番目の数497474です。 平均値との差は15569.000000です。
32番目に平均との差が小さい数は36番目の数529044です。 平均値との差は16000.000000です。
33番目に平均との差が小さい数は412番目の数530489です。 平均値との差は17445.000000です。
34番目に平均との差が小さい数は51番目の数530735です。 平均値との差は17691.000000です。
35番目に平均との差が小さい数は552番目の数494911です。 平均値との差は18132.000000です。
36番目に平均との差が小さい数は727番目の数531257です。 平均値との差は18213.000000です。
37番目に平均との差が小さい数は41番目の数531477です。 平均値との差は18433.000000です。
38番目に平均との差が小さい数は757番目の数531561です。 平均値との差は18517.000000です。
39番目に平均との差が小さい数は859番目の数531804です。 平均値との差は18760.000000です。
40番目に平均との差が小さい数は637番目の数492843です。 平均値との差は20200.000000です。
41番目に平均との差が小さい数は355番目の数492552です。 平均値との差は20491.000000です。
42番目に平均との差が小さい数は834番目の数533595です。 平均値との差は20551.000000です。
43番目に平均との差が小さい数は774番目の数492381です。 平均値との差は20662.000000です。
44番目に平均との差が小さい数は404番目の数534600です。 平均値との差は21556.000000です。
45番目に平均との差が小さい数は967番目の数491007です。 平均値との差は22036.000000です。
46番目に平均との差が小さい数は187番目の数535499です。 平均値との差は22455.000000です。
47番目に平均との差が小さい数は765番目の数535722です。 平均値との差は22678.000000です。
48番目に平均との差が小さい数は71番目の数536290です。 平均値との差は23246.000000です。
49番目に平均との差が小さい数は265番目の数537116です。 平均値との差は24072.000000です。
50番目に平均との差が小さい数は1000番目の数537189です。 平均値との差は24145.000000です。
51番目に平均との差が小さい数は782番目の数488811です。 平均値との差は24232.000000です。
52番目に平均との差が小さい数は449番目の数537517です。 平均値との差は24473.000000です。
53番目に平均との差が小さい数は467番目の数537630です。 平均値との差は24586.000000です。
54番目に平均との差が小さい数は242番目の数488120です。 平均値との差は24923.000000です。
55番目に平均との差が小さい数は101番目の数487665です。 平均値との差は25378.000000です。
56番目に平均との差が小さい数は243番目の数487116です。 平均値との差は25927.000000です。
57番目に平均との差が小さい数は421番目の数486916です。 平均値との差は26127.000000です。
58番目に平均との差が小さい数は966番目の数485353です。 平均値との差は27690.000000です。
59番目に平均との差が小さい数は987番目の数540753です。 平均値との差は27709.000000です。
60番目に平均との差が小さい数は905番目の数484979です。 平均値との差は28064.000000です。
61番目に平均との差が小さい数は588番目の数541375です。 平均値との差は28331.000000です。
62番目に平均との差が小さい数は733番目の数542793です。 平均値との差は29749.000000です。
63番目に平均との差が小さい数は609番目の数483181です。 平均値との差は29862.000000です。
64番目に平均との差が小さい数は543番目の数543170です。 平均値との差は30126.000000です。
65番目に平均との差が小さい数は590番目の数482775です。 平均値との差は30268.000000です。
66番目に平均との差が小さい数は11番目の数482623です。 平均値との差は30420.000000です。
67番目に平均との差が小さい数は569番目の数482587です。 平均値との差は30456.000000です。
68番目に平均との差が小さい数は867番目の数544019です。 平均値との差は30975.000000です。
69番目に平均との差が小さい数は409番目の数481818です。 平均値との差は31225.000000です。
70番目に平均との差が小さい数は66番目の数544362です。 平均値との差は31318.000000です。
71番目に平均との差が小さい数は724番目の数481591です。 平均値との差は31452.000000です。
72番目に平均との差が小さい数は793番目の数481187です。 平均値との差は31856.000000です。
73番目に平均との差が小さい数は647番目の数481047です。 平均値との差は31996.000000です。
74番目に平均との差が小さい数は386番目の数479155です。 平均値との差は33888.000000です。
75番目に平均との差が小さい数は958番目の数476922です。 平均値との差は36121.000000です。
76番目に平均との差が小さい数は229番目の数476768です。 平均値との差は36275.000000です。
77番目に平均との差が小さい数は533番目の数475858です。 平均値との差は37185.000000です。
78番目に平均との差が小さい数は226番目の数550645です。 平均値との差は37601.000000です。
79番目に平均との差が小さい数は719番目の数474359です。 平均値との差は38684.000000です。
80番目に平均との差が小さい数は508番目の数551923です。 平均値との差は38879.000000です。
81番目に平均との差が小さい数は300番目の数552561です。 平均値との差は39517.000000です。
82番目に平均との差が小さい数は779番目の数472796です。 平均値との差は40247.000000です。
83番目に平均との差が小さい数は592番目の数471506です。 平均値との差は41537.000000です。
84番目に平均との差が小さい数は989番目の数471176です。 平均値との差は41867.000000です。
85番目に平均との差が小さい数は513番目の数555928です。 平均値との差は42884.000000です。
86番目に平均との差が小さい数は459番目の数556793です。 平均値との差は43749.000000です。
87番目に平均との差が小さい数は182番目の数556960です。 平均値との差は43916.000000です。
88番目に平均との差が小さい数は516番目の数557042です。 平均値との差は43998.000000です。
89番目に平均との差が小さい数は311番目の数469025です。 平均値との差は44018.000000です。
90番目に平均との差が小さい数は580番目の数468223です。 平均値との差は44820.000000です。
91番目に平均との差が小さい数は10番目の数558430です。 平均値との差は45386.000000です。
92番目に平均との差が小さい数は850番目の数467329です。 平均値との差は45714.000000です。
93番目に平均との差が小さい数は667番目の数467229です。 平均値との差は45814.000000です。
94番目に平均との差が小さい数は606番目の数558903です。 平均値との差は45859.000000です。
95番目に平均との差が小さい数は159番目の数466806です。 平均値との差は46237.000000です。
96番目に平均との差が小さい数は451番目の数559843です。 平均値との差は46799.000000です。
97番目に平均との差が小さい数は957番目の数466045です。 平均値との差は46998.000000です。
98番目に平均との差が小さい数は117番目の数560879です。 平均値との差は47835.000000です。
99番目に平均との差が小さい数は361番目の数561985です。 平均値との差は48941.000000です。
100番目に平均との差が小さい数は596番目の数463458です。 平均値との差は49585.000000です。