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

请教下

2012-02-02 
请问下#includestdio.h#includectype.h#includeconio.hintfun(char*s,intnum){chartinti,jfor(i1

请问下
#include   <stdio.h>
#include   <ctype.h>
#include   <conio.h>
int   fun(char   *s,   int   num)
{char   t;  
  int   i,   j;
  for(i=1;i <num-2;i++)           /*下标值从1开始,用循环依次取得字符串中的字符*/
        for(j=i+1;j <num-1;j++)     /*将字符与其后的每个字符比较*/
                if(s[i]> s[j])               /*如果后面字符的ASCII码值小于该字符的ASCII码值*/
                    {   t=s[i];                 /*则交换这两个字符*/
                        s[i]=s[j];
                        s[j]=t;  
                    }
}
main()
{
  FILE   *wf;
  char   s[10];
  clrscr();
  printf( "输入7个字符的字符串: ");
  gets(s);
  fun(s,7);
  printf( "\n%s ",s);
/******************************/
  wf=fopen( "out.dat ", "w ");
  s[10]= "BdsihAd ";
  fun(s,7);
  fprintf(wf, "%s ",s);
  fclose(wf);
/*****************************/
}
 
这个在TC中能运行,为什么在VC上不能?需要修改什么吗?

[解决办法]
#include <stdio.h>
#include <ctype.h>
int fun(char *s, int num)
{char t;
int i, j;
for(i=1;i <num-2;i++) /*下标值从1开始,用循环依次取得字符串中的字符*/
for(j=i+1;j <num-1;j++) /*将字符与其后的每个字符比较*/
if(s[i]> s[j]) /*如果后面字符的ASCII码值小于该字符的ASCII码值*/
{ t=s[i]; /*则交换这两个字符*/
s[i]=s[j];
s[j]=t;
}
}
main()
{
FILE *wf;
char s[10];
system( "cls "); //clrscr(); !!修改
printf( "输入7个字符的字符串: ");
gets(s);
fun(s,7);
printf( "\n%s ",s);
/******************************/
wf=fopen( "out.dat ", "w ");
s[10]= "BdsihAd ";
fun(s,7);
fprintf(wf, "%s ",s);
fclose(wf);
/*****************************/
}
[解决办法]
1.clrscr(); --> system( "cls ");
2.s[10]= "BdsihAd "; --> strcpy(a, "BdsihAd ");


包含必要的头文件:
#include <stdlib.h>
#include <string.h>


[解决办法]
1.clrscr(); --> system( "cls ");
2.s[10]= "BdsihAd "; --> strcpy(s, "BdsihAd ");


包含必要的头文件:
#include <stdlib.h>
#include <string.h>
----------------------------------

结合上面jixingzhong(瞌睡虫·星辰) 的代码,然后注意到fun函数和main函数都没有返回值,干脆改为void,然后应该没问题了

热点排行