/* 函数fun的功能是:用冒泡法对6个字符串进行排序。
void fun(char *str[] , int n) */
#include <stdio.h>
#include <string.h>
void fun(char *st[],int n);
void main()
{
int n,i;
char *st[]; /*定义一个字符指针*/
scanf("%d",&n); /*输入n个字符进行比较*/
for(i=0;i<n;i++)
scanf("%s",st); /*输入要比较的字符*/
fun(*st[],n); /*函数的传递,我觉得我这步错了不知道字符串是如何传递的*/
}
void fun(char *st[],int n)
{
int i,j;
char *st1[];
for(i=0;i<n-1;i++) /*冒泡的外循环要比较的次数*/
for(j=n-1;j>i;j++) /*每次循环*/
if(strcmp(st[j]>st[j-1] /*做交换*/
{
st1[]=st[j];
st[j]=st[j-1];
st[j-1]=st1[];
}
printf("The result is:");
for(i=0;i<n;i++) /*输出结果*/
printf("%10s",st[i]);
}
很多错``不知道如何解决````谁有空的话帮我调试一下```
我第一次做字符串的题目有些蒙```
----------------解决方案--------------------------------------------------------
void main()
改为int main(void)
----------------解决方案--------------------------------------------------------
if(strcmp(st[j]>st[j-1] /*做交换*/
if(strcmp(st[j],st[j-1])>0)
----------------解决方案--------------------------------------------------------
if(strcmp(st[j],st[j-1]) ==-1)
if(strcmp(st[j]>st[j-1] )) /*做交换*/
----------------解决方案--------------------------------------------------------
st1[]=st[j];
字符串不能直接赋值,而应该用strcpy(st1,st[j]);
此后的字符串赋值均如此更改
----------------解决方案--------------------------------------------------------
谢谢``那个
void main()
为什么改成int main(void)
有谁调用main吗?`
----------------解决方案--------------------------------------------------------
VC编译器老说我定义的数组长度未知是什么意思?`
----------------解决方案--------------------------------------------------------
谢谢``那个
void main()
为什么改成int main(void)
有谁调用main吗?`
看看我的电子书:http://bbs.bc-cn.net/viewthread.php?tid=115667
你就会知道了
----------------解决方案--------------------------------------------------------
VC编译器老说我定义的数组长度未知是什么意思?`
char *st[];
是错误的,当然不对了
char **st;或
define N N的最大值
char st[N][N];
----------------解决方案--------------------------------------------------------
#include <stdio.h>
#include <string.h>
void fun(char *st[],int n);
void main(void)
{
int n,i;
char **st; /*定义一个字符指针*/
scanf("%d",&n); /*输入n个字符进行比较*/
for(i=0;i<n;i++)
scanf("%s",st); /*输入要比较的字符*/
fun(**st,n); /*函数的传递,我觉得我这步错了不知道字符串是如何传递的*/
}
void fun(char *st[],int n)
{
int i,j;
char **st1;
for(i=0;i<n-1;i++) /*冒泡的外循环要比较的次数*/
for(j=n-1;j>i;j++) /*每次循环*/
if(strcmp(st[j],st[j-1]>0)) /*做交换*/
{
strcpy(st1[],st[j]);
strcpy(st[j],st[j-1]);
strcpy(st[j-1],st1[]);
}
printf("The result is:");
for(i=0;i<n;i++) /*输出结果*/
printf("%10s",st[i]);
}
这是我改后的不过还 有几个错我改不出来```
----------------解决方案--------------------------------------------------------