实验报告8

更新时间:2023-12-27 03:11:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

福建农林大学计算机与信息学院实验报告

系(教研室): 信息与计算科学 专业: 信息与计算科学 年级: 2008

实验课程: 程序设计基础 姓名: 陈鹏翔 学号: 081152022 实验室号: 510 计算机号: 实验时间: 指导教师签字: 成绩: 实验8:指针

一、 实验目的和要求

通过实验进一步掌握指针的概念,会定义和使用指针变量; 能正确使用数组的指针和指向数组的指针变量; 能正确使用字符串的指针和指向字符串的指针变量

二、 实验内容和原理

1. 输入3个整数,按由小到大的顺序输出。

2. 输入3个字符串,按由小到大的顺序输出。

3. 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。

写3个函数:①输入10个数;②进行处理;③输出10个数。

三、 实验环境

1. 硬件:PC机;

2. 软件:Windows操作系统、TurboC++ 3.0 。

四、 算法描述及实验步骤

1 输入数据a,b,c p1→&a,p2→&b,p3→&c 若*p1>*p2 *p1<->*p2 若*p1>*p3 *p1<->*p3 若*p2>*p3 *p2<->*p3 输出a,b,c

2 输入数据str1,str2,str3 若str1>str2 str1<->str2 若str1>str3 str1<->str3 若str2>str3 str2<->str3 输出str1,str2,str3. 3 输入数据a;i=0 number[i]=a i++ i<10 max=min=number[0];p=number[0]+1 T *p>*max F *max=*p T *p<*max F *min=*p p++ pnumber[0];max<->number[9] p=number[0] 输出*p p++ p

五、 调试过程

第三题中的if(max==number) max=min;若“==”号改为赋值号“=”则在输入的数据中第一个数若非最大即无法得到正确的结果,若去掉该语句则第一个数不是最大即可。

六、 实验结果

1 3

2

七、 总结

在c语言中应注意区分等号“==”和赋值号“=”的区别。

字符串大小的比较不能直接比较(str1>str2)而应该用strcmp语句(strcmp(str1,str3))

附录:

1.

#include \void main() {void swap(); int a,b,c,*p1,*p2,*p3;

scanf(\p1=&a;p2=&b;p3=&c; if(*p1>*p2) swap(p1,p2); if(*p1>*p3) swap(p1,p3); if(*p2>*p3) swap(p2,p3); printf(\}

void swap(int *pt1,int *pt2) {int temp; temp=*pt1; *pt1=*pt2; *pt2=temp;

}

2.

#include \#include \void main()

{void swap(char *,char *); char str1[20],str2[20],str3[20]; gets(str1);gets(str2);gets(str3); if(strcmp(str1,str2)>0) swap(str1,str2); if(strcmp(str1,str3)>0) swap(str1,str3); if(strcmp(str2,str3)>0) swap(str2,str3); printf(\ }

void swap(char *p1,char *p2) {char p[20];

strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);}

3.

#include \void main()

{void input(int *); void max_min_value(int *); void output(int *); int number[10]; input(number);

max_min_value(number); output(number); }

void max_min_value(int number[]) {int *max,*min,*p,temp,*q; max=min=number;

for(p=number+1;p*max) max=p; else if(*p<*min) min=p;} if(max==number) max=min; temp=number[0];number[0]=*min;*min=temp;

temp=number[9];number[9]=*max;*max=temp; }

void input(int number[]) {int i;

printf(\for(i=0;i<10;i++) scanf(\

}

void output(int number[]) {int *p;

printf(\

for(p=number;p

本文来源:https://www.bwwdw.com/article/yt0x.html

Top