21、从键盘输入high,计算并输出high以内最大的10个素数之和。例如,输入high的值为100,则输出732。 #include
int fun( int high ) {
int sum = 0, n=0, j, yes; while ((high >= 2) && (n < 10)) {
yes = 1;
for (j=2; j<=high/2; j++ ) if (high % j ==0 )
{
yes=0; break; }
if (yes==1) {
sum +=high; n++; }
high--; }
return sum ; }
void main ( ) {
printf(\}
21 / 53
22、请编写函数float fun(int n),它的功能是:返回n(包括n)以内能被5或9整除的所有自然数的倒数之和。例如,n=20,返回0.583333。注意:要求n的值不大于100。 #include
int i;
double sum=0.0; if(n>0&&n<=100) {
for (i=1;i<=n;i++)
if(i%5==0||i%9==0)
sum+=1.0/i;
}
return sum; }
void main() {
int n; double s; printf(\ scanf(\ s=fun(n);
printf(\}
22 / 53
23、请编一个函数fun(int *a, int n, int *odd, int *even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n给出数组a中数据的个数;利用指针odd返回奇数之和,利用指针even返回偶数之和。
例如:数组中的值依次为: 1,9,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even 返回偶数之和8。
#include
fun ( int *a, int n, int *odd, int *even ) {
int i,sum_odd=0,sum_even=0; for(i=0;i sum_odd+=a[i]; *odd=sum_odd; *even=sum_even; } void main( ) { int a[N]={1,9,2,3,11,6}, i, n=6, odd, even; printf ( \ for ( i = 0; i < n; i ++ ) printf ( \ printf(\ fun ( a, n, &odd, &even ); printf ( \ printf ( \ } 23 / 53 24、编写计算三角形面积的程序,注意:将计算面积定义成函数float fun(int a,int b,int c)(a,b,c为三角形的三条边,返回三角形的面积),在主函数中调用fun #include float fun(int a,int b,int c) { } void main() { } int a,b,c; printf(“请输入三角形三条边:\\n”); scanf(“%d%d%d”,&a,&b,&d); if(a+b>c && b+c>a && a+c>b) printf(“三角形面积为:%.2f”,fun(a,b,c)); printf(“无法构成三角形”); else float p; p=(a+b+c)/2; return sqrt(p*(p-a)*(p-b)*(p-c)); 24 / 53