实验十:指针
//在数组中查找指定元素//
#include<stdio.h>
int search(int list[],int n,int x);
int main(void)
{
int i,n,res,x;
int a[10];
printf("Input n:");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("Input x:");
scanf("%d",&x);
res=search(a,n,x);
if(res>=0)
printf("index=%d\n",res);
else
printf("Not found\n");
return 0;
}
int search(int list[],int n,int x)
{ int i;
for(i=0;i<n;i++)
if(list[i]==x) return i;
return -1;
}


//循环后移//
#include<stdio.h>
void move(int *x,int n,int m);
int main(void)
{
int i,m,n;
int a[80];
printf("Enter n:");
scanf("%d",&n);
printf("Enter m:");
scanf("%d",&m);
for(i=0;i<n;i++)
scanf("%d", &a[i]);
move(a,n,m);
printf("After move: ");
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
void move(int *p,int n,int m)
{
int i,j,k=0,a[80];
for(i=0;i<n;i++)
if(i<n-m)
a[i+m]=p[i];
else
a[k++]=p[i];
for(i=0;i<n;i++)
p[i]=a[i];
}

//删除字符//
#include<stdio.h>
void delchar(char *s,char c);
int main(void)
{
char c;
char s[80];
printf("Input the string:");
gets(s);
printf("Input a ch:");
scanf("%c",&c);
delchar(s,c);
printf("result: ");
puts(s);
return 0;
}
void delchar(char *s,char c)
{ int i,j; i=j=0;
while(s[i]!='\0')
{ if(s[i]!=c)
{
s[j]=s[i];
j++;
}
i++;
}
s[j]='\0'; }

//字符串排序//
#include<stdio.h>
#include<string.h>
int main(void)
{
int n,i,j,index;
char sx[80][80],stemp[80];
printf("Enter n:");
scanf("%d",&n);
printf("Input %d strings:",n);
for(i=0;i<n;i++)
scanf("%s",sx[i]); //每行的基地址//
for(i=0;i<n-1;i++){
index=i;
for(j=i+1;j<n;j++)
if(strcmp(sx[j],sx[index])<0)
index=j;
strcpy(stemp,sx[i]);
strcpy(sx[i],sx[index]);
strcpy(sx[index],stemp);
}
printf("after sorted: \n");
for(i=0;i<5;i++)
printf("%s\t",sx[i]);
return 0;
}


浙公网安备 33010602011771号