第八章:善于利用指针
发布时间:2024-11-17
发布时间:2024-11-17
南京信息工程大学 滨江学院 实验(实习)报告
实验(实习)名称 指针 实验(实习)日期 2011.12 指导教师 宣文霞
专业 实验班 年级 大一 班次4 班 姓名 王雅婷 学号 20112335052 Eg8-1: 输入两个整数,并使其从大到小输出,用指针变量实现数的比较。
(1) 源程序:
#include <stdio.h>
void main()
{ int *p1,*p2,*p,a,b;
scanf("%d,%d",&a,&b);
p1=&a; p2=&b;
if(a<b)
{ p=p1; p1=p2; p2=p;}
printf("a=%d,b=%d\n",a,b);
printf("max=%d,min=%d\n",*p1,*p2);
}
(2)输入数据:13,15
(3)结果输出:
Eg8-2: 输入两个整数,并使其从大到小输出,用函数实现数的交换
(1)源程序:
#include <stdio.h>
void swap(int *p1, int *p2)
{ int p;
p=*p1;
*p1=*p2;
*p2=p;
}
void main()
{ int a,b;
int *p,*q;
scanf("%d,%d",&a,&b);
p=&a; q=&b;31
if(a<b) swap(p,q);
printf("\n%d,%d\n",a,b);
}
(2)输入数据:13,16
(3)结果输出:
(4)如果将 swap 函数修改为如下形式,分析如何调试和修改?
void swap(int *p1, int *p2)
{
int *p;
*p=*p1;
*p1=*p2;
*p2=*p;
}
Eg8-3:用指针法输入 12 个数,然后按每行 4 个数输出。
(1)算法分析:定义一个整型数组和一个整型指针,这样通过数组就可以静态分配 内存空间,存储数据;然后将指针与数组相关,使指针指向与数组相同的首地址处,这样就可以通过指针或者数组都可以对存储空间加以操作。
(2)源程序:
#include <stdio.h>
void main()
{ int j,k,a[12],*p ;
p=a; //使指针 p 指向与数组 a 相同的首地址处
for(j=0;j<12;j++)
scanf("%d",p++); //移动 P 的位置,输入数据
p=a; //指针重定位
for(j=0;j<12;j++)
{
if(j%4==0)
printf("\n"); //按每行 4 个数输出
printf("%4d",*p++);
}
printf("\n");
}
(3)输入数据:0 1 2 3 4 5 6 7 8 9 10 11
(4)结果输出:
Eg8-4: 从键盘输入十个整数,要求用冒泡法(或选择法)实现从大到小的排列输出。 #include <stdio.h>
main()
{
int s[10],t,i,j,x;
printf("input 10 numbers:\n");
for(t=0;t<10;t++)
scanf("%d",&s[t]);
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(s[j]<s[j+1])
{t=s[j];s[j]=s[j+1];s[j+1]=t;}
printf("the result is:\n ");
for(j=0;j<10;j++)
printf("%d",s[ji]);
printf("\n");
}
输入数据: 1 2 3 4 5 6 7 8 9 10 结果输出:
Eg8-5: 练习指针数组:有三个字符串“DATA STRUCTURE”、“COPUTER DESIGN”、 “C PROGROM”,请按字符顺序输出这三个字符串。(要求用指针数组指
向这三个字符串。)
#include<stdio.h>
#include<string.h>
void sort(char *p[]);
int main()
{
char a[]="DATA STRUCTURE ",b[]="COPUTER DESIGN ",c[]="C PROGROM "; char *p[3];
int i;
p[0]=a;
p[1]=b;
p[2]=c;
sort(p);
for(i=0;i<=2;i++)
printf("%s ",p[i]);
printf("\n");
return 0;
}
void sort(char *p[])
{
char *t;
if(strcmp(p[0],p[1])>0)
{
t=p[0];
p[0]=p[1];
p[1]=t;
}
if(strcmp(p[0],p[2])>0)
{
t=p[0];
p[0]=p[2];
p[2]=t;
t=p[1];
p[1]=p[2];
p[2]=t;
}
}
输入数据:“DATA STRUCTURE”、“COPUTER DESIGN”、结果输出:
“C PROGROM”
上一篇:英语四级作文常用句子
下一篇:浅谈生态景观型河道横断面形式