1. ★c语言 编写函数fun 统计各年龄段人数
100岁以上的判断出错,原因在于,你把100岁以上的人,仍然按10岁一级统计了(分别统计了110、120...以下),你的fun函数修改后(如果其他的地方没有错的话):
voidfun(int*a,int*b)
{
inti,j,n;
for(j=0;j<M;j++)
b[j]=0;//计数器初始化
for(i=0;i<N;i++)//循环判断所有的年龄
{
n=a[i]/10;
if(n<10)
b[a[i]/10]++;
elseb[10]++;
}
2. C语言 分组(数字分组)
是要分组排列呢?还是要分组输出呢?
拿去用!
void Test(int n)
{
for (int i = 1; i <= 50; ++i)
{
cout << i ;
if (i % n == 0)
cout << endl ;
else
cout << ", " ;
}
}
3. c语言 数据分组
第一个数组的元素由算法可以得到,对于给定n = 100,m = 32,第一个数组的元素为1 到10,那么接下来的m - 1个数组该存放什么样的值呢,需要算法控制。
4. c语言通讯录排序按年龄从小到大输出
void sort(struct Man *p,int n){//p是数组第一元素指针,n是数组长度
int i,j,k;
struct Man t;
for(i=0;i<n;i++){
for(k=i,j=k+1;j<n;j++)
if(strcmp(p[k].Name,p[j].Name)>0)
k=j;
if(k!=i){//这里是k与i的关系而非j
t=p[k];//这里交换整个数组元素,不能只交换成员Name
p[k]=p[i];
p[i]=t;
}
}
}
5. c语言,分组
int i,j,group;
printf("请输入要分组的人数:");
scanf("%d", &group);
for(i = 0,j = 1;i < 50;i++,j++)
{
printf("%d", i);
if(j != group)
{
printf(" ");
}
else
{
printf("\n");
}
}
6. c语言的年龄冒泡排序
#include<stdio.h>
main()
{
inta[100],i,j,t,n;
printf("请输入有多少人?");
scanf("%d",&n);
printf("请分别输入他们的年龄: ");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("排序后,年龄分别为: ");
for(i=0;i<n;i++)
printf("%d",a[i]);
}
是这样吗?
7. C语言如何实现分组统计
/*通过一次循环分别按性别和年龄统计人数
(c)hele2013/03/04*/
#include<stdio.h>
#defineN8//N是统计人群的最小年龄
#defineM20//年龄跨度设为20岁
enumyear{y1=N,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y20};
structhum{
yearold;
intnum1[M];
charmale[2];
intnum2[2];
}hum;//构建的结构体,统计年龄跨度20,2种性别的人群
voiddisplay()
{inti;
for(i=0;i<M;i++)
{
printf("old:%d :%d ",N+i,hum.num1[i]);
}
for(i=0;i<2;i++)
printf("male:%c :%d ",hum.male[i],hum.num2[i]);
}
voidinitial()
{hum.male[0]='0';
hum.male[1]='1';
}
intmain()
{initial();
charc[8];
FILE*fp;
if((fp=fopen("in.txt","r"))==NULL)
{
printf("Can'topenin.txt");
return1;
}
while(!feof(fp))
{fscanf(fp,"%s",c);
//读年龄
intold;
fscanf(fp,"%d",&old);
hum.old=(year)old;//强制类型转换,使hum.old是old的值
hum.num1[old-y1]++;//countnumberofeveryyearold
//读性别
intmale;
fscanf(fp,"%d",&male);
hum.num2[male]++;//countnumberofevery性别
}
display();
return0;
}
说明:
1.仅供参考
2.注意“in.txt"文件格式,其文件结尾不要有空白行,正文只有姓名、年龄、性别三种,用空格隔开,如图
3.尚有缺陷,没有使用_wchar,对特定中文名字会统计错误,所以尽量用英文名字。