C语言 求救 二.实验内容: ⑴ 编写自定义子函数实现:利用指针实现求一维数组中全部元素的平均值;并在

二.实验内容:

⑴ 编写自定义子函数实现:利用指针实现求一维数组中全部元素的平均值;并在主函数中给出实例,调用该函数。

⑵ 编写函数实现:删除一个字符串中的所有某一指定的字符。

(要求:方法一:用数组实现; 方法二:
用指针实现)并在主函数中给出实例,调用该函数。
实验六 运用指针的程序设计

一.实验目的:

1. 掌握指针定义、引用、运算及应用;在理解指针与数组的关系的基础上,能熟练运用指针进行编程;

2. 对直接访问方式与指针访问方式进行比较,找出并分析它们之间的区别,达到最终掌握指针的妙用;

3. 理解字符指针、行指针和指针数组的概念,并掌握它们的使用方法。

二.实验内容:

⑴ 编写自定义子函数实现:利用指针实现求一维数组中全部元素的平均值;并在主函数中给出实例,调用该函数。

⑵ 编写函数实现:删除一个字符串中的所有某一指定的字符。

(要求:方法一:用数组实现; 方法二:
用指针实现)并在主函数中给出实例,调用该函数。

三.实验要求:

1. 本次实验需提交实验报告(纸质)及C源程序(提交在网上)。(提交打印版的实验报告给老师)

2. 对第二题的两种处理方法进行分析比较,谈谈你的体会。

1.

#include "stdio.h"

double getAve(int *a,int n)

{

   int *p;

   int sum=0;

   for(p=a;p<a+n;p++)

       sum+=*p;

   return sum*1.0/n;

}

int main()

{

      int a[10]={1,2,3,4,5,6,7,8,9,10};

      printf("数组元素的平均值为%lf\n",getAve(a,10));

 

}

2.

#include "stdio.h"

//del和delchar两个函数功能一样。

void del(char in[],char ch)

{

      int i;

      int j=0;

      for(i=0;in[i]!='\0';i++)

          if(in[i]!=ch)

          {

               in[j]=in[i];

               j++;

           }

      in[j]='\0';

}

void delChar(char *in,char ch)

{

     char *p=in;

     int j=0;

     for(;*p!='\0';p++)

         if(*p!=ch)

           *(in+j++)=*p;

     *(in+j)='\0';

}

int main()

{

       char str[100]={0};

       char ch;

       printf("请输入一个字符串:");

       gets(str);

       printf("请输入一个字符:");

       scanf("%c",&ch);

       delChar(str,ch);

       printf("字符串删除字符后输出:");

       puts(str);

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-31
第一个问题:
#include <stdio.h>

double aver( double a[], int size )
{
int i;
double sum = 0.0;
for ( i = 0; i < size; i++ )
sum += a[i];
return sum / size;
}

int main()
{
double num[10];
int i;
for ( i = 0; i < 10; i++ )
scanf("%lf", &a[i]);
printf("%lf\n", aver( num, 10 ));

return 0;
}

第二个问题:
#include <stdio.h>

void delete( char ch, char a[], int size )
{
int i, j;
for ( i = 0; i < size; i++ )
if ( a[i] == ch )
{
for ( j = i; j < size - 1; j++ )
a[j] = a[j+1];
a[j] = '\0';
i--;
}
}

int main()
{
char a[] = "abcabcaaabc";
char *ptr;
ptr = a;
delete( 'a', a, 11 );
// delete( 'a', ptr, 11 );
printf("%s\n", a);

return 0;
}
相似回答