1、首先我们打开我们的编译器,新建工程,文件后,写下我们的头文件和主函数。
2、具体程序代码如下:#include
3、定义a、b、c来表示我们所要输入的三位不同的整数,temp表示求出最小值时的中间变值,Average表示我们所求的平均值,smallest表示我们最终要求出的最小值,分别定义给其分配空间。
4、Average=(a+b+c)/3 表示我们向计算机发出求出平均值的命令。指示计算机帮我们计算出这三个值的平均值。
5、前面我们定义smallest是整形,所以后面我们输出时也要必须与其对应,使用“%d”来完成它的输出。
6、最后,点击运行命令即可输出我们想要的结果了。
c语言函数库里面没有自定义函数,需要自行定义。
例:将较大的数减去较小的数,得到两数的相差多少,再将差值的一半给较小的数,这样两数就相等了。c的值永远不会超过intmax
intmain()
{
inta=10;
intb=5;
intc=a+(b-a)/2;
system("pause");
return0;
}
扩展资料
C语言求平均值
#include
#defineINF1000000000
intmain()
{
#ifdefLOCAL
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
#endif
//FILE*fin,*fout;
//fin=fopen("data.in","rb");
//fout=fopen("data.out","wb");
intx,n=0,min=INF,max=-INF,s=0;
while(scanf("%d",&x)==1)
{
s+=x;
if(x if(x>max)max=x; printf("x=%d,min=%d,max=%d\n",x,min,max); n++; } printf("%d%d%.3f\n",min,max,(double)s/n); return0; }
c语言的中没有现成的求平均数函数,可以自己定义一个求平均数的函数
double Average(double s[],int n)
{
if(n==0)return 0;
double sum=0;
for(int i=0;ireturn sum/n;
}
double avg(double *num,int length)//传递一个浮点型的数组,和整型的数的个数
{
int i;
double sum=0.0;
for(i=0;i
sum+=num[length];
}
return sum/length;
}
看了你这程序,运用了指针和链表,应该学得很后了,应该很容易就会这个求平均值的函数的,这是我指出的问题:
1、结构体的声明应该在主函数外,这是一个编程习惯,便于其他函数的引用
2、但结构体变量的定义就应该在main里面例如:struct node *first,*p,*last;这样不会干扰其他函数的同名变量
3、其实大型的软件main里面只有界面的几句话,你建立链表的过程应该独立为一个函数比较好,不过你这程序比较简单就不必要
下面是我修改的程序:
#include
#include
struct node
{
int num;
char name[10];
int yuwen;
int shuxue;
int yinyu;
float pjf;//存储平均分
struct node *next;
};
float pjf(struct node *head);//声明求平均分函数
main()
{
struct node *first,*p,*last;
int count,i;
printf("输入学生数\n");
scanf("%d",&count);
p=(struct node*)malloc(sizeof(struct node));
printf("依次输入学生号、名字、语文、数学、英语\n");
scanf("\n%d\n%s\n%d\n%d\n%d",&p->num,&p->name,&p->yuwen,&p->shuxue,&p->yinyu);
p->next=NULL;
last=first=p;
for(i=1;i
p=(struct node*)malloc(sizeof(struct node));
scanf("\n%d\n%s\n%d\n%d\n%d",&p->num,&p->name,&p->yuwen,&p->shuxue,&p->yinyu);
p->next=NULL;
last->next=p;
last=p;
}
p=first;
printf("学生号\t名字\t语文\t数学\t英语\t平均分\n");
while(p!=NULL)
{
p->pjf=pjf(p);//调用求平均分的函数
printf("%d\t%s\t%d\t%d\t%d\t\%g\n",p->num,p->name,p->yuwen,p->shuxue,p->yinyu,p->pjf);
p=p->next;
}
}
float pjf(struct node *head)
{
float x=0;
struct node *p=head;
x=(p->shuxue+p->yinyu+p->yuwen)/3;
return(x);
}