看了你這程序,運用了指針和鏈表,應該學得很后了,應該很容易就會這個求平均值的函數的,這是我指出的問題:
目前創新互聯公司已為數千家的企業提供了網站建設、域名、雅安服務器托管、網站改版維護、企業網站設計、修武網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。
1、結構體的聲明應該在主函數外,這是一個編程習慣,便于其他函數的引用
2、但結構體變量的定義就應該在main里面例如:struct node *first,*p,*last;這樣不會干擾其他函數的同名變量
3、其實大型的軟件main里面只有界面的幾句話,你建立鏈表的過程應該獨立為一個函數比較好,不過你這程序比較簡單就不必要
下面是我修改的程序:
#include stdio.h
#include stdlib.h
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;icount;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);
}
c語言的中沒有現成的求平均數函數,可以自己定義一個求平均數的函數
1
2
3
4
5
6
7
double?Average(double?s[],int?n)
{
if(n==0)return?0;
double?sum=0;
for(int?i=0;in;i++)sum+=s[i];
return?sum/n;
}
#include?stdio.h
double?average(int?k[10]?);??//有改動
void?main()
{
int?a[10],i;
double?average1;
for(i=0;i10;i++)
scanf("%d",a[i]);
average1=average(a);
printf("%lf",average1);
}
double?average(int?k[10]?)??//有改動
{
double?sum=0;
int?j;
for(j=0;j10;j++)
sum=sum+k[j];
return(sum/10);
}
1、新建一個?求數組內所有元素的平均值項目。
2、添加一個 average.cpp 文件。
3、包含需要用到的各種頭文件。
4、輸入main函數。
5、定義一個double類型的數組arr[5]。
6、使用 for 循環求出arr數組的平均值。
7、運行程序,輸出結果即可。
#include stdlib.h
#define N 10
double fun(double x[],double *y)
{ int i,j; double av;
/**********found**********/
av=0;
/**********found**********/
for(i=0; iN; i++) av = av + x[i]/N;
for(i=j=0; iN; i++)
/**********found**********/
if(x[i]av) y[j++]= x[i];
y[j]=-1;
return av;
}
main()
{ int i; double x[N],y[N];
for(i=0; iN; i++){ x[i]=rand()%50; printf("%4.0f ",x[i]);}
printf("\n");
printf("\nThe average is: %f\n",fun(x,y));
for(i=0; y[i]=0; i++) printf("%5.1f ",y[i]);
printf("\n");
}
本文題目:c語言有取平均數函數嘛 c求平均數函數
網站地址:http://m.newbst.com/article48/dodhjhp.html
成都網站建設公司_創新互聯,為您提供App設計、用戶體驗、移動網站建設、企業建站、網站設計、全網營銷推廣
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯