|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- /*随机数产生年龄,统计各个年龄段人数,大于100岁的人数放在b[10],0-9放在b[0],10-19放在b[1],类推*/
- #include <stdio.h>
- # define N 50
- # define M 11
- void fun(int *a, int *b)
- {
- int c[M],i;
- for(i=0;i<N;i++)
- {
- if( 0 <= a[i] <= 9 ) (c[0])++; //年龄大于0小于9,c[0]++
- if( 10 <= a[i] <= 19 ) (c[1])++; //同上
- if( 20 <= a[i] <= 29 ) (c[2])++;
- if( 30 <= a[i] <= 39 ) (c[3])++;
- if( 40 <= a[i] <= 49 ) (c[4])++;
- if( 50 <= a[i] <= 59 ) (c[5])++;
- if( 60 <= a[i] <= 69 ) (c[6])++;
- if( 70 <= a[i] <= 79 ) (c[7])++;
- if( 80 <= a[i] <= 89 ) (c[8])++;
- if( 90 <= a[i] <= 99 ) (c[9])++;
- if( 100 <= a[i] ) (c[10])++;
- }
- for(i=0;i<M;i++)
- {
- b[i] = c[i];
- }
- }
- double rnd()
- {
- static int t=29,c=217,m=1024,r=0;
- r=(r*t+c)%m;
- return((double)r/m);
- }
- void main()
- {
- FILE *wf;
- int age[N], i,d[M];
- int b[N]={32,45,15,12,86,49,97,3,44,52,17,95,63};
- for(i=0; i<N; i++)
- age[i]=(int)(115*rnd()); /*产生一个随机的年龄数组*/
- printf("The original data :\n");
- for(i=0; i<N; i++)
- printf((i+1)%10==0? "%4d\n":"%4d",age[i]); /*每行输出10个数*/
- printf("\n\n");
- fun(age,d);
- for(i=0; i<10; i++)
- printf("%4d---%4d :%4d\n", i*10, i*10+9,d[i]);
- printf("Over 100 : %4d\n",d[10]);
- /******************************/
- wf=fopen("out.dat","w");
- fun(b,d);
- for(i=0; i<10; i++)
- fprintf(wf,"%4d---%4d :%4d\n", i*10, i*10+9,d[i]);
- fprintf(wf,"Over 100 : %4d",d[10]);
- fclose(wf);
- /*****************************/
- }
- 运行结果:
复制代码
本帖最后由 永恒的蓝色梦想 于 2020-4-13 15:22 编辑
问题出在12-21行 - /*随机数产生年龄,统计各个年龄段人数,大于100岁的人数放在b[10],0-9放在b[0],10-19放在b[1],类推*/
- #include <stdio.h>
- # define N 50
- # define M 11
- void fun(int *a, int *b)
- {
- int c[M],i;
- for(i=0;i<N;i++)
- {
- if( 0 <= a[i] && a[i] <= 9 ) (c[0])++; //年龄大于0小于9,c[0]++
- if( 10 <= a[i] && a[i] <= 19 ) (c[1])++; //同上
- if( 20 <= a[i] && a[i] <= 29 ) (c[2])++;
- if( 30 <= a[i] && a[i] <= 39 ) (c[3])++;
- if( 40 <= a[i] && a[i] <= 49 ) (c[4])++;
- if( 50 <= a[i] && a[i] <= 59 ) (c[5])++;
- if( 60 <= a[i] && a[i] <= 69 ) (c[6])++;
- if( 70 <= a[i] && a[i] <= 79 ) (c[7])++;
- if( 80 <= a[i] && a[i] <= 89 ) (c[8])++;
- if( 90 <= a[i] && a[i] <= 99 ) (c[9])++;
- if( 100 <= a[i] ) (c[10])++;
- }
- for(i=0;i<M;i++)
- {
- b[i] = c[i];
- }
- }
- double rnd()
- {
- static int t=29,c=217,m=1024,r=0;
- r=(r*t+c)%m;
- return((double)r/m);
- }
- void main()
- {
- FILE *wf;
- int age[N], i,d[M];
- int b[N]={32,45,15,12,86,49,97,3,44,52,17,95,63};
- for(i=0; i<N; i++)
- age[i]=(int)(115*rnd()); /*产生一个随机的年龄数组*/
- printf("The original data :\n");
- for(i=0; i<N; i++)
- printf((i+1)%10==0? "%4d\n":"%4d",age[i]); /*每行输出10个数*/
- printf("\n\n");
- fun(age,d);
- for(i=0; i<10; i++)
- printf("%4d---%4d :%4d\n", i*10, i*10+9,d[i]);
- printf("Over 100 : %4d\n",d[10]);
- /******************************/
- wf=fopen("out.dat","w");
- fun(b,d);
- for(i=0; i<10; i++)
- fprintf(wf,"%4d---%4d :%4d\n", i*10, i*10+9,d[i]);
- fprintf(wf,"Over 100 : %4d",d[10]);
- fclose(wf);
- /*****************************/
- }
复制代码又一个Python写法受害者
|
|