你用的应该是TC2.0吧?
Unable create output file
无法创建输出文件
TC2.0中,输出文件生成的地址一般默认是:DOS/TEMP/
在DOS/文件夹下应该有TEMP或者其他(记不清楚了)文件夹的(其实就是路径设置的问题),可能你给删除了,建议换编译器吧!用WIN-TC或者DEV-C++都很不错的,不仅不需要设置路径等问题,还自动给出编程格式,帮助你做好代码。
下面的代码我在以上两种软件上都运行通过了。
main ()
{
char main_str[100];
printf("Please enter the keywords:");gets(main_str);
jssort(main_str);
getch();
}
jssort(char str[])
{
int i,j,is_ji=0,k=0;
char str_temp[100]="",temp;
is_ji=(strlen(str)%2==0)?0:1;
switch (is_ji)
{
case 0:
{
for(i=strlen(str)/2;i
for(i=0;i
break;
}
case 1:
{
for(i=(strlen(str)-1)/2+1;i
for(i=0;i<(strlen(str)-1)/2;i++)
for(j=0;j<(strlen(str)-1)/2-1-i;j++)
if ((int)str[j]>(int)str[j+1]) {temp=str[j];str[j]=str[j+1];str[j+1]=temp;}
for(i=0;i<(strlen(str)-1)/2;i++) str_temp[k++]=str[i];
for(i=0;i
break;
}
default: break;
}
}
你少了一个函数声明。
解决方法有2。
1:main函数前加上这句:
void jssort(char str[]);
2:把main函数移到void jssort(char str[])函数之后就行了。
1处什么error啊, 贴一下啊
晕了, 不会看错误提示的这多得是, 不会贴错误提示的真是少。。
有些地方是跟编译器相关的,你用的编译器版本, 你文件是.c还是.cpp, 你编译选项开没开unicode这些的差别都可以让一个别人跑的了的程序你那编译不了, 所以没错误提示这种问题很难解决,根本不知道编译器在哪等着你呢
程序没多大问题,我改了义点点,运行OK了
#include
#include
int main ()
{
void jssort(char str[]);//声明函数,以供调用
char main_str[100];
printf("Please enter the keywords:");gets(main_str);
jssort(main_str);
getchar();
return 0;
}
void jssort(char str[])
{
int i,j,is_ji=0,k=0;
char str_temp[100]="",temp;
is_ji=(strlen(str)%2==0)?0:1;
switch (is_ji)
{
case 0:
{
for(i=strlen(str)/2;i
for(i=0;i
break;
}
case 1:
{
for(i=(strlen(str)-1)/2+1;i
for(i=0;i<(strlen(str)-1)/2;i++)
for(j=0;j<(strlen(str)-1)/2-1-i;j++)
if ((int)str[j]>(int)str[j+1]) {temp=str[j];str[j]=str[j+1];str[j+1]=temp;}
for(i=0;i<(strlen(str)-1)/2;i++) str_temp[k++]=str[i];
for(i=0;i
break;
}
default: break;
}
}
这样做:
#include
#include
void jssort(char str[]);
main ()
{
char main_str[100];
printf("Please enter the keywords:");gets(main_str);
jssort(main_str);
getch();
}
void jssort(char str[])
{
int i,j,is_ji=0,k=0;
char str_temp[100]="",temp;
is_ji=(strlen(str)%2==0)?0:1;
switch (is_ji)
{
case 0:
{
for(i=strlen(str)/2;i
for(i=0;i
break;
}
case 1:
{
for(i=(strlen(str)-1)/2+1;i
for(i=0;i<(strlen(str)-1)/2;i++)
for(j=0;j<(strlen(str)-1)/2-1-i;j++)
if ((int)str[j]>(int)str[j+1]) {temp=str[j];str[j]=str[j+1];str[j+1]=temp;}
for(i=0;i<(strlen(str)-1)/2;i++) str_temp[k++]=str[i];
for(i=0;i
break;
}
default: break;
}
}