C语言初学者,问下我这题错在哪

来源:百度知道 编辑:UC知道 时间:2024/05/16 08:15:49
题目:请编写函数fun,对长度位7个字符的字符串,除首,尾字符外,将其余5个字符按ASII码降序排列
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
#include <string.h>

void fun( char *s,int num)
{int i,j;
char *p,t;
p=s;
for(i=1;i<num-2;i++)
{for(j=i+1;j<num-1;j++)
if(p[i]<p[j])
t=p[i];p[i]=p[j];p[j]=t;}

}

main()
{
char s[10];
FILE *out;
printf("输入7个字符的字符串:");
gets(s);
fun(s,7);
printf("\n%s", s);
out=fopen("out.dat", "w");
strcpy(s, "ceaEDCA");
fprintf(out, "%s", s);
fclose(out);
}

void fun( char *s,int num)
{int i,j;
char *p,t;
p=s;
for(i=1;i<num-3;i++) //循环判定条件往前退一
for(j=i+1;j<num-2;j++) //循环判定条件往前退一
if(p[i]<p[j])
t=p[i];p[i]=p[j];p[j]=t;
}

另外,加在第2个for之前的那对{}可以不要的。

没有问题啊!可能是你的C++版本有问题吧!