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);
}
#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;
}