实验八指向数组的指针.doc
文本预览下载声明
实验八 指向数组的指针
实验类型:验证性 要求:必做 学时:2
实验目的:
1.进一步理解指针的概念,掌握其在数组和字符串中的应用
2.能正确使用指向函数的指针变量
3.了解指向指针的指针的概念及其使用方法
实验内容:
1.输入10个整数,找出其中最大的数并与最后一个数对换。写三个函数
(1)输入10个数;
(2)进行处理;
(3)输出10个数。
源程序:#define n 10
#include stdio.h
input(int *p) /*用for循环输入10个数*/
{int i; /*首先定义循环次数控制变量*/
for(i=0;in;i++) /*for循环*/
scanf(%d,p++); /*scanf输入数*/
}
swap(int a[]) /*把最大值与a[9]交换*/
{ int i,j=0,t,max=a[0] ; /*首先定义变量*/
for(i=1;in;i++) /*for循环找到最大值,并记住最大值位置*/
if(maxa[i]) {max=a[i];j=i;} /*交换*/
t=max;a[j]=a[9];a[9]=t;
}
output(int *p) /*用for循环输出10个数*/
{int i;
printf(\n);
for(i=0;in;i++)
printf(%d,*p++);
}
void main()
{
int a[10];
input(a);
swap(a);
output(a);
}
运行结果:
2.输入一个3位数,计算该数各位上的数字之和,如果在[1,12]之内,则输出与和数相对应的月份的英文名称,否则输出* * *。(用指针数组记录各月份英文单词的首地址)
源程序:#includestdio.h
void main()
{
int i,a,b,c,sum;
char *p[12]={Jan,Feb,May,Jun,Jul,Aug,Set,Oct,Nov,Des};
printf(请输入已个三位数:);
scanf(%d,i);
a=i/100;
b=i/10-a*10;
c=i%10;
sum=a+b+c;
if(sum=1sum=12)
printf(%d=%d+%d+%d--%s\n,sum,a,b,c,p[sum-1]);
else
printf(%d=%d+%d+%d--***\n,sum,a,b,c);
}
运行结果:
显示全部