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,對特定中文名字會統計錯誤,所以盡量用英文名字。