重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你只需要按那个模版就行,那些内容就改成你的作业
创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的巍山网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
班级: 学号: 姓名:
实验9 指针
一、实验目的
(1)掌握指针概念,并定义与使用它。
(2)使用数组的指针和指向数组的指针变量。
(3)使用字符串的指针和指向字符串的指针变量。
二、实验内容
1. 将一个3*3的矩阵转置,用函数实现。
2. 有n个人围成一圈,顺序排号。从第一个人开始报数(1~3),凡报到3的人退出,问第几号的人能留下。
三、实验环境
硬件:(1)学生用微机
(2)多媒体实验教室
软件:(1)Windows XP 中文操作系统
(2)VC++ 6.0
四、实验结果
程序1:
#includestdio.h
void main()
{
void move(int *pointer);
int a[3][3],*p,i;
printf("input marix:\n");
for(i=0;i3;i++)
scanf("%d %d %d",a[i][0],a[i][1],a[i][2]);
p=a[0][0];
move(p);
printf("matrix:\n");
for(i=0;i3;i++)
printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);
}
void move(int *pointer)
{
int i,j,t;
for(i=0;i3;i++)
for(j=i;j3;j++)
{
t=*(pointer+3*i+j);
*(pointer+3*i+j)=*(pointer+3*j+i);
*(pointer+3*j+i)=t;
}
}
程序2:
#includestdio.h
void main()
{
int i,k,m,n,num[50],*p;
printf("input num of person:");
scanf("%d",n);
p=num;
for(i=0;in;i++)
*(p+i)=i+1;
i=0;
k=0;
m=0;
while(mn-1)
{
if(*(p+i)!=0)k++;
if(k==3)
{
*(p+i)=0;
k=0;
m++;
}
i++;
if(i==n)i=0;
}
while(*p==0)p++;
printf("the last num is %d\n",*p);
}
结果1:(就是程序运行之后出现的框,截图后粘贴这里)
结果2:
五、总结:
通过这个实验的学习, 基本掌握了指针的基本用法。
1.
#include "stdio.h"
double getAve(int *a,int n)
{
int *p;
int sum=0;
for(p=a;pa+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);
}
通过这次指针实验掌握了指针的概念,
会定义和使用指针变量,
并且能利用指针来简单化一些问题,给以后的编程带来了很大的便利;
很高兴为你解答,不懂请追问!满意请采纳,谢谢!O(∩_∩)O~
#include stdio.h
int main(void)
{
int a,b,c,x,y,sum=0;
for(a=1;a=9;a++)
for(b=0;b=9;b++)
for(c=0;c=9;c++)
{
x=100*a+10*b+c;
y=a*a*a+b*b*b+c*c*c;
if(x==y)
{
sum+=x;
}
}
printf("水仙花数和:%d\n",sum);
return 0;
}
#includestdio.h
int main()
{
int array[10];
int i, *p;
for(p=array, i=0; i10; i++)
scanf("%d", p+i);
for(p=array, i=0; i10; i++)
printf("%d ", *(p+i));
return 0;
}