它的功能是根据以下公式求的值要求满足精度0.docx
《它的功能是根据以下公式求的值要求满足精度0.docx》由会员分享,可在线阅读,更多相关《它的功能是根据以下公式求的值要求满足精度0.docx(34页珍藏版)》请在冰豆网上搜索。
它的功能是根据以下公式求的值要求满足精度0
1.请编写一个函数fun,它的功能是:
根据以下公式求∏的值(要求满足精度0.0005,即某项小于O.0005时停止迭代):
程序运行后,如果输入精度O.0005,则程序输出为3.14…。
#include
#include
doublefun(doubleeps)
{}
main()
{doublex;
printf("Inputeps:
");
scanf("%lf",&x);
printf("\neps=%lf,PI=%lf\n",x,fun(x));
}
2.请编写一个函数fun,它的功能是:
计算并输出给定整数n的所有因子(不包括l与自身)之和。
规定n的值不大于1000。
例如,若主函数从键盘给n输入的值为856,则输出为sum=763。
#include
intfun(intn)
{}
main()
{intn,sum;
printf("inputn:
");
scanf("%d",&n);
sum=fun(n);
printf("sum=%d\n",sum);
}
3.请编写函数fun,其功能是:
计算并输出下列多项式值:
例如,若主函数从键盘给n输入8后,则输出为S=O.662872。
注意:
n的值要求大于l但不大于100。
部分源程序给出如下。
#include
doublefun(intn)
{}
main()
{intn;doubles;
printf("\ninputn:
");
scanf("%d",&n);
s=fun(n);
printf("\ns=%f\n",s);
}
4.请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。
例如,当n=10,x=O.3时,函数值为1.349859。
#include
#include
#include
doublefun(doublex,intn)
{}
main()
{clrscr();
printf("%f\n",fun(0.3,10));
}
5.请编写函数fun,其功能是:
计算并输出下列多项式值:
例如,若主函数从键盘给n输入50后,则输出为S=1.960784。
注意:
n的值要求大于l但不大于100。
#include
doublefun(intn)
{}
main()
{intn;doubles;
printf("\ninputn:
");scanf("%d",&n);
s=fun(n);
printf("\n\ns=%f\n\n",s);
}
6.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:
将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。
例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为10、20、30、40。
#include
#include
#include
intfun(intscore[],intm,intbelow[])
{}
main()
{inti,n,below[9];
intscore[9]={10,20,30,40,50,60,70,80,90};
clrscr();
n=fun(score,9,below);
printf("\nBelowtheaveragescoreare:
");
for(i=0;i}
7.请编写一个函数voidfun(intm,intk,intxx[]),该函数的功能是:
将大于整数m且紧靠m的k个素数存入xx所指的数组中。
例如,若输入:
17,5,则应输出:
19,23,29,31,37。
#include
#include
voidfun(intm,intk,intxx[])
{}
main()
{intm,n,zz[1000];
clrscr();
printf("\nPleaseentertwointegers:
");
scanf("%d%d",&m,&n);
fun(m,n,zz);
for(m=0;mprintf("%d",zz[m]);
printf("\n");
}
8.请编写一个函数intfun(int*s,intt,int*k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
例如,输入如下整数:
876675896101301401980431451777;则输出结果为:
6,980。
#include
#include
intfun(int*s,intt,int*k)
{}
main()
{inta[10]={876,675,896,101,
301,401,980,431,451,777},k;
clrscr();
fun(a,10,&k);
printf("%d,%d\n",k,a[k]);
}
9.请编写一个函数unsignedfun(unsignedw),w是一个大于10的无符号整数,若w是n(n≥2)位的整数,则函数求出w的后n-1位的数作为函数值返回。
例如:
w值为5923,则函数返回923;若w值为923,则函数返回23。
#include
#include
unsignedfun(unsignedw)
{}
main()
{unsignedx;
clrscr();
printf("Enteraunsignedintegernumber:
");scanf("%u",&x);
printf("Theoriginaldatais:
%u\n",x);
if(x<10)printf("Dataerror!
");
elseprintf("Theresult:
%u\n",fun(x));
}
10.请编写函数fun,该函数的功能是:
移动一维数组中的内容:
若数组中有n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。
例如,一维数组中的原始内容为:
1,2,3,4,5,6,7,8,9,10;p的值为3。
移动后,一维数组中的内容应为:
5,6,7,8,9,l0,l,2,3,4。
#include
#defineN80
voidfun(int*w,intp,intn)
{}
main()
{inta[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
inti,p,n=15;
printf("theoriginaldata:
\n");
for(i=0;iprintf("\n\nenterp:
");scanf("%d",&p);
fun(a,p,n);
printf("\nthedataaftermoving:
\n");
for(i=0;iprintf("\n\n");
}
11.请编写函数fun,其功能是:
将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。
例如,若输入17,则应输出:
9和46891012141516。
#include
#include
voidfun(intm,int*k,intxx[])
{}
main()
{intm,n,zz[100];
clrscr();
printf("\pleaseenteranintegernumberbetween10and100:
");
scanf("%d",&n);
fun(n,&m,zz);
printf("\n\nthereare%dnon-primenumberslessthan%d:
",m,n);
for(n=0;nprintf("\n%4d",zz[n]);
}
12.请编写函数fun,该函数的功能是:
删去一维数组中所有相同的数,使之只剩一个。
数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
2223445666677899101010。
删除后,数组中的内容应该是:
2345678910。
#include
#defineN80
intfun(inta[],intn)
{}
main()
{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,
9,9,10,10,10,10},i,n=20;
printf("theoriginaldata:
\n");
for(i=0;in=fun(a,n);
printf("\n\nthedataafterdeleted:
\n");
for(i=0;iprintf("\n\n");
}
13.fun功能:
删除所有值为y的元素。
数组元素的值和y的值由主函数通过键盘读入。
其中n所指存储单元存放了数组中元素的个数。
#include
#include
#defineM20
voidfun(intbb[],int*n,inty)
{}
main()
{intaa[M],n,y,k;
clrscr();
printf("\nPleaseentern:
");scanf("%d",&n);
printf("\nEnter%dpositivenumber:
\n",n);
for(k=0;kprintf("Theoriginaldatais:
\n");
for(k=0;kprintf("\nEnteranumbertodeleted:
");scanf("%d",&y);
fun(aa,&n,y);
printf("Thedataafterdeleted%d:
\n",y);
for(k=0;kprintf("\n");
}
14.定义N╳N的二维数组,并在主函数中自动赋值。
编写fun(inta[][N]),其功能是:
把数组中第一行元素的值与倒数第一行元素的值对调。
第二行元素的值与倒数第二行元素的值对调,…依此类推。
例:
a数组中原来为:
|0111279|
|19745|
|20131831|
|145682|
|1591741|
则返回主函数后a中值为:
|1591741|
|145682|
|20131831|
|19745|
|0111279|
#include"stdio.h"
#include"conio.h"
#include"stdlib.h"
#defineN5
intfun(inta[][N])
{}
main()
{inta[N][N],i,j;
clrscr();
printf("*****Thearray*****\n");
for(i=0;i{for(j=0;j{a[i][j]=rand()%30;printf("%4d",a[i][j]);}
printf("\n");
}
fun(a);
printf("*****THERESULT*****\n");
for(i=0;i{for(j=0;jprintf("\n");
}
}
15.下列程序定义了N×N的二维数组,并在主函数中赋值。
请编写函数fun,函数的功能是:
求出数组周边元素的平均值并作为函数值返回给主函数中的s。
例如:
若a数组中的值为
01279
19745
a=23831
45682
59141
则返回主程序后s的值应为3.375。
#include
#include
#include
#defineN5
doublefun(intw[][N])
{}
main()
{inta[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};
inti,j;
doubles;
clrscr();
printf("*****Thearray*****\n");
for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}
printf("\n");
}
s=fun(a);
printf("*****THERESULT*****\n");
printf("Thesumis:
%lf\n",s);
}
16.请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。
二维数组中的数已在主函数中赋予。
#include
#include
#defineM3
#defineN4
voidfun(inttt[M][N],intpp[N])
{}
main()
{intt[M][N]={{22,45,56,30},
{19,33,45,38},
{20,22,66,40}};
intp[N],i,j,k;
clrscr();
printf("Theoriginaldatais:
\n");
for(i=0;ifor(j=0;jprintf("%6d",t[i][j]);
printf("\n");
}
fun(t,p);
printf("\nTheresultis:
\n");
for(k=0;kprintf("\n");
}
17.编写程序,实现矩阵(3行3列)的转置(即行列互换)。
例如,若输入下面的矩阵:
100200300
400500600
700800900
则程序输出:
100400700
200500800
300600900
#include
#include
intfun(intarray[3][3])
{}
main()
{inti,j;
intarray[3][3]={{100,200,300},
{400,500,600},
{700,800,900}};
clrscr();
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");
}
fun(array);
printf("coveredarray:
\n");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");
}
}
18.编写函数intfun(intlim,intaa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数的个数。
#include
#include
#defineMAX100
intfun(intlim,intaa[MAX])
{}
main()
{intlimit,i,sum;
intaa[MAX];
clrscr();
printf("enteraninteger");
scanf("%d",&limit);
sum=fun(limit,aa);
for(i=0;iif(i%10==0&&i!
=0)printf("\n");
printf("%5d",aa[i]);
}
}
19.请编写一个函数fun,它的功能是:
找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。
数组元素中的值已在主函数中赋予。
主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
#include
#include
voidfun(inta[],intn,int*max,int*d)
{}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;iprintf("\n");
fun(x,n,&max,&index);
printf("Max=%5d,Index=%4d\n",max,index);
}
20.请编写函数fun,该函数的功能是:
将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。
例如,若二维数组中的数据为:
WWWW
SSSS
HHHH
则字符串中的内容应是WSHWSHWSH。
#include
#defineM3
#defineN4
voidfun(char(*s)[N],char*b)
{}
main()
{chara[100],w[M][N]={{'W','W','W','W'},{'S','S','S','S'},
{'H','H','H','H'}};
inti,j;
printf("thematrix:
\n");
for(i=0;i{for(j=0;jprintf("\n");
}
fun(w,a);
printf("theastring:
\n");puts(a);
printf("\n\n");
}
21.下列程序定义了N×N的二维数组,并在主函数中自动赋值。
请编写函数fun(inta[][N],intm),该函数的功能是:
使数组右上半三角元素中的值乘以m。
例如:
若m为本2,a数组中的
19721814
a=238则返回主程序后a数组中的值应为2616
4564512
#include"stdio.h"
#include"conio.h"
#include"stdlib.h"
#defineN5
intfun(inta[][N],intm)
{}
main()
{inta[N][N],m,i,j;
clrscr();
printf("*****Thearray*****\n");
for(i=0;i{for(j=0;j{a[i][j]=rand()%20;printf("%4d",a[i][j]);}
printf("\n");
}
dom=rand()%10;while(m>=3);
printf("m=%4d\n",m);
fun(a,m);
printf("THERESULT\n");
for(i=0;i{for(j=0;jprintf("\n");
}}
22.请编写函数fun,该函数的功能是:
将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。
例如,若二维数组中的数据为:
33333333
44444444
55555555
则一维数组中的内容应是:
333333334444444455555555
#include
voidfun(int(*s)[10],int*b,int*n,intmm,intnn)
{}
main()
{intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;
inta[100]={0},n=0;
printf("thematrix:
\n");
for(i=0;i<3;i++)
{for(