读书人

C语言的题帮忙找一下错

发布时间: 2012-03-17 19:06:28 作者: rapoo

C语言的大虾题帮忙找一下错
#include <stdio.h>
str_rewind(char a[],int n)
{
int temp,i,j,m=(n-1)/2;
for(i=0;i<=m;i++)
{
j=n-1-i;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}

}

int main()
{
int i;
char a[80]={"vlanljvaiojfkla"};
str_rewind(a[80],80);
for(i=0;i<=80;i++)
printf("%s",a[i]);

}


[解决办法]

C/C++ code
#include <stdio.h>  void str_rewind(char a[],int n)  //函数要带返回类型{      int temp,i,j,m=(n-1)/2;      for(i=0;i<=m;i++)      {          j=n-1-i;          temp=a[i];          a[i]=a[j];          a[j]=temp;      }  }   int main()  {    int i;    char a[80]={"vlanljvaiojfkla"};    str_rewind(a,80);  //注意数组传参时,用数组名作为参数  for(i=0;i<=80;i++)        printf("%s",a[i]);    return 0;}
[解决办法]
定义的函数没有返回类型;
调用函数时第一个参数应为数组名称;
主函数没有返回值
[解决办法]
[code=C/C++][/code]#include <stdio.h>
void str_rewind(char a[],int n)
{
int temp,i,j,m=(n-1)/2;
for(i=0;a[i]!='\0';i++)
{
j=n-1-i;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}

int main()
{
int i;
char a[80]={"vlanljvaiojfkla"};
str_rewind(a,80);
for(i=0;i<=80;i++)
printf("%c",a[i]); //注意输出类型
return 0;
}
[解决办法]
探讨

首先谢谢各位的答案,对于初学者的我来说学习了很多!
1.定义的函数要有返回类型;
2.数组传参时,用数组名作为参数;
3.“for(i=0;a[i]!='\0';i++) ”竟然可以这样‘a[i]!='\0' ’(是我以前连看都没看过的 )




那就继续问了啊

1.定义的函数(void)是空必须写上?
2.“主函数没有返回值”主函数也要有返回值?
3.%c.%s在这……

[解决办法]
1.C的标准,没返回值函数可以不写void,缺省为整型,但VS2008不可以
2.标准的主函数应该有返回值的,只有的VC支持void main,gcc的必须用int main()
3.%c %s本质不同,%c输出1个字符,%s输出1个字串(以'\0'结尾的)

读书人网 >C++

热点推荐