黑马程序员技术交流社区
标题:
一个关于倒序的函数 求助
[打印本页]
作者:
变味的面包
时间:
2015-4-24 14:20
标题:
一个关于倒序的函数 求助
本帖最后由 变味的面包 于 2015-4-29 14:55 编辑
#include <stdio.h>
void fun(int a[4])
{
int i,t;
for(i=0;i<2;i++)
{
t=a[i];
a[i]=a[3-i];
a[3-i]=t;
}
}
int main()
{
int a[4]={4,5,6,7},i;
printf("逆序前:\n");
for(i=0;i<4;i++)
printf("%3d",a[i]);
putchar('\0');
printf("\n逆序后:\n");
fun(a);
for(i=0;i<4;i++)
printf("%3d",a[i]);
putchar('\0');
return 0;
}
复制代码
上面代码是完全可行的 但是用下面的代码就不行了 小伙伴们看一下为什么?
#include<stdio.h>
#include<string.h>
//倒序
void fun(int a[])
{
int temp;
// int count = sizeof(a)/sizeof(int); 断点测试这里count = 2
int count = strlen(a);
for(int j=0;j<(count)/2;j++)
{
temp = a[(j)];
a[(j)] = a[(count-j-1)];
a[(count-j-1)] = temp;
}
}
int main()
{
char a[] = {4,5,6,7,8};
// 倒序前打印
int count = strlen(a);
for(int i=0;i<count;i++)
{
printf("%d ",a[i]);
}
printf("\n");
//倒序
fun( a );
//倒序后打印
for(int i = 0;i < 5;i ++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
复制代码
作者:
变味的面包
时间:
2015-4-24 16:02
呜呜 都木人在吗?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2