指针实验

 

 

1.实数拆分

#include<stdio.h>
void splitfloat (float x,int *intpart,float * fracpart);
int main(void)
{
float i;
int m;
float n;
printf("输入一个实数\n");
scanf("%f",&i);
splitfloat(i, &m, &n);

printf("%d",m);
printf("\n");
printf("%f",n);
return 0;
}

void splitfloat (float x,int *intpart,float * fracpart)
{
*intpart=(int)x;
* fracpart=x-*intpart;
}

 

 

2.循环后移

#include<stdio.h>
#include<stdlib.h>
int main()
{
int n,m,i,j;
int*p;
printf("请输入数据的个数:n\n");
scanf("%d",&n);
printf("请输入移动位置数:m\n");
scanf("%d",&m);
p=(int*)calloc(n,sizeof(int));
for(i=0;i<n;i++)
scanf("%d",p+i);
for(i=0;i<n;i++){
j=(m/n+1)*n-m+i;
if(j>=n)
j-=n;
printf("%d\t",*(p+j));
}
printf("\n");
return 0;
}

 

3。删除字符

#include<stdio.h>
#include<string.h>
#define x 100
void delchar(char s[],char c);
int main()
{
char str[x],c;
printf("输入你的字符串:");
gets(str);
printf("输入所删除字符:");
scanf("%c",&c);
delchar(str,c);
puts(str);
return 0;
}
void delchar(char*s,char c)
{
int a,i;
a=strlen(s);
for(i=a-1;i>=0;i--)
if(*(s+i)==c)
strcpy(s+i,s+i+1);
}

4.字符串排序

#include"stdio.h"
#include"string.h"
int main (void)
{
char str[5][10],t[10];
int i,j;
printf("请输入5个字符串\n");
for(i=0;i<5;i++)
scanf("%s",str[i]);
for(i=1;i<5;i++){
for(j=0;j<5-i;j++)
if(strcmp(str[j],str[j+1])>0){
strcpy(t,str[j]);
strcpy(str[j],str[j+1]);
strcpy(str[j+1],t);
}
}
printf("升序排序\n");
for(i=0;i<5;i++)
printf("%s\n",str[i]);

 

return 0;

}

心得:指针对于写程序的作用很大,用了指针十分的方便,但是指针不容易掌握,需要反复上机实验练习

posted @ 2019-06-19 21:43  贺占录  阅读(110)  评论(0编辑  收藏  举报