第一题
#include <stdio.h>
#include <windows.h>
void main()
{
char Family[20],i=0,j=0,n=0;
float sum=0.0;
FILE *pf;
pf=fopen("age.txt","r");/*读取文件*/
if(pf==NULL){
printf("文件打开失败...");/*失败报错*/
exit(0);
}
while(!feof(pf))
{
fscanf(pf,"%d",Family+i++);/*读取数字*/
if(getc(pf)=='\n')
{
n++;/*记录第几组*/
for(j=0;j<i;j++) sum+=Family[j];
printf("第%d组平均年龄为:%5.2f: ",n,sum/i);/*输出平均年龄*/
for(j=0;j<i;j++) printf("%d ",Family[j]);/*打印原数据*/
i=0;
sum=0.0;
}
}
}
第二题
#include<stdio.h>
#include<stdlib.h>
int random()
{
int a;
a=10+rand()%90;
return a;
}
void sort(int a[]) //从小到大、选择排序
{ int i,j,n;
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
if(a[i]>a[j])
{n=a[i];
a[i]=a[j];
a[j]=n;
}
}
void find(int a[])
{
int n,i=10,k=0;
scanf("%d",&n);
i=i/2;
while(i>0)
{
if(n==a[i])
{
k=1;
printf("有:%d\n",a[i]);
break;
}
else if(n>a[i])i=(9+i)/2;
else if(n<a[i])i=i/2;
}
if(k==0)
printf("无\n");
}
void main()
{
int i,a[10],n;
int b=1;
while(b==1)
{
printf(" 请选择:\n 1、生成随机数并排序\n 2、键盘输入数据查找\n 3、返回\n");
scanf("%d",&n);
switch(n)
{
case 1:
for(i=0;i<10;i++)
a[i]=random();
sort(a);
for(i=0;i<10;i++)printf("%d ",a[i]);
printf("\n");
break;
case 2:
find(a);
printf("\n");
break;
case 3:
b==0;
exit(0);
}
}
}
同志们要给力啊,今天中午问题就下了!