指针1
题目:用指针的方式实现某数字字符串是否是回文
#include<stdio.h>
int main ()
{ char *p,*q;
char a[20];
int judgement=1;
scanf("%s",a);
p=q=a; while ( *q ) q++; q--;
while ( p<q )
{ if ( *p!=*q ) { judgement=0; break; } else { p++; q--; }
}
if ( judgement ) printf("'%s'是回文\n",a); else printf("'%s'不是回文\n",a);
}
指针2
问题:用指针方式实现从键盘输入5个整数存入一个数组。用指针的方法实现从中查找某个整数,找到时输出该数所在的下标。
#include<stdio.h>
#include<stdlib.h>
int main(void)
{int number,i,*q,t;
int f=0; //下标
int w;
number=5;
q=(int*)malloc(number*sizeof(int));
for(i==0;i<number;i++)
{ scanf("%d",&q[i]);
}
printf("输入要寻找的整数");
scanf("%d",&w) ;
for(t=0;t<number;t++)
{if(q[t]== w)
{f=t;
t=number;
}
}
if(f==0)
{printf("没找到");
}
printf("寻找的整数下标是%d",f);
free(q);
return 0;
}
指针3
问题:输入N*N的矩阵,输出它的转置矩阵。(N不超过100)
#include<stdio.h>
int main()
{int n,i,j;
scanf("%d",&n);
int a[n][n];
for(i=0;i<=n-1;i++)
{for(j=0;j<=n-1;j++)
{scanf("%d",&a[i][j]);
}
}
int z,x;
for(z=0;z<=n-1;z++)
{for(x=0;x<=n-1;x++)
{printf("%d",a[x][z]);
printf(" ");
}
printf("\n");
}
return 0;
}
指针4
问题:读入一些字符串,将其中的空格去掉。
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
char p[80],*ptr;
char a[80];
int i=0,j=0,m=0,t=0;
int sum[80];
while(*(ptr=gets(p))!=NULL)
{
m=(sizeof(p)/sizeof(char))-1;
while(i<=m)
{
if(p[i] !=' ')
{a[j]=p[i];
j++;
}
i++;
}
sum[t]=i;
t++;
}
int r,z=0;
for(r=1;r<=j;r++)
{
printf("%s",a[r]);
if(sum[z]=r) {
printf("\n");
z++;
}
}
return 0;
}