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

C语言的题帮忙找一下错

2012-03-17 
C语言的大虾题帮忙找一下错#include stdio.hstr_rewind(char a[],int n){int temp,i,j,m(n-1)/2for(i

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'结尾的)

热点排行