读书人

程序改错,该如何解决

发布时间: 2012-03-08 13:30:13 作者: rapoo

程序改错
#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 ";
这样才可以....

读书人网 >C语言

热点推荐