本人C语言现已学习到指针与数组的内容
本次所取习题链接:link(我支持版权的喔)
实现我的承诺!
现用所学知识修改后:
#include<stdio.h>
#include<string.h>
#define N 30
#define M 30
void fun1(int*p);
void fun2(int*p);
int h;
main()
{
char a[N];
int b[M],i,j,*p=&b;
gets(a);
h=strlen(a); //定义全局变量h确认数串的长度
for(j=0,i=0;i<strlen(a);i++)
b[j++]=a[i]-'0';
if(h%2==0)
fun1(p);
else
fun2(p);
for(i=0;i<h;i++)
printf("%d\t",p[i]); //输出P指向的值
}
void fun1(int*p)
{
int i,j;
for(i=0;i<h/2;i++)
{
j=p[i];
p[i]=p[h-1-i];
p[h-1-i]=j;
}
}
void fun2(int*p)
{
int i,j;
for(i=0;i<=h/2;i++)
{
j=p[i];
p[i]=p[h-1-i];
p[h-1-i]=j;
}
}
这里我利用了两个子函数,一个指针变量和一个全局变量来修改,总算是给做出来了。虽然看起来复杂了一点,但是高级了呀,是不。
这里的全局变量h是为了能够在各个子函数中运用,而指针变量呢则在各自的子函数中改变了自己所指向的值!
请教一下:
为什么我这里会有一个 in function ‘main’: 和以下的这一串呢,希望各位大神能解决我的疑惑,我所敲的函数就是上面的喔,感谢。