首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

程序改错,该如何解决

2012-03-08 
程序改错#include stdio.h#include string.hvoidsort(int*arr,intlen){inti,j,tempfor(i0i leni+

程序改错
#include <stdio.h>
#include <string.h>
void   sort(int*   arr,int   len)
{
int   i,j,temp;
for(i=0;i <len;i++)
for(j=0;j <len-i;j++)
{
if(arr[j]> arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
for(i=0;i <len;i++)
printf( "%d, ",arr[i]);
}
int   main()
{
int   i,len;
int   arr[20]={5,2,8,1,9};
len=strlen(arr);
for(i=0;i <=5;i++)
printf( "%d, ",arr[i]);
printf( "\n ");
printf( "the   result   is:\n ");
sort(arr,len);
return   0;
}

在vc下编译,错误提示: 'strlen '   :   cannot   convert   parameter   1   from   'int   [20] '   to   'const   char   * '
                Types   pointed   to   are   unrelated;   conversion   requires   reinterpret_cast,   C-style   cast   or   function-style   cast
不知道哪里错的,然后把len=strlen(arr)换成len=5,编译通过,结果却不对,高手知道下!

[解决办法]
int arr[20]={5,2,8,1,9};
len=strlen(arr);
我的天啊 !!!!!!!!!!!!!!!!!!!!
strlen 是算字符串长度的
char arr[20]={ '5 ', '2 ', '8 ', '1 ', '9 ', '\0 '};或者 char arr[20]= "52819 ";
这样才可以....

热点排行