高分悬赏!!!!!求下列三道C语言的每一步详细解释,急!!!!在线等!!!!

第一题
#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);
}
}
}
同志们要给力啊,今天中午问题就下了!

#include <stdio.h>
#include <windows.h>
void main()
{
char Family[20],i=0,j=0,n=0;//定义一个大小为20的数组并初始化i,n,j为0
float sum=0.0;//初始化sum为0.0
FILE *pf;//定义一个指针
pf=fopen("age.txt","r");/*读取文件*/
if(pf==NULL){//判断文件是否打开的条件
printf("文件打开失败...");/*失败报错*/
exit(0);//抛出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
a=10+rand()%90;//随机产生数,并赋值a
return a;//返回a
}

void sort(int a[]) //从小到大、选择排序
{ int i,j,n;//定义
for(i=0;i<10;i++)//执行9次
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://如果n=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);//抛出0
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-24
分多了没地儿用。。。 找个高手,当场指点就好了,人家给你注释的你也学不到什么东西
第2个回答  2012-07-03
看到的有点晚了= =!
相似回答