| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 837 人关注过本帖
标题:我的代码错在什么地方
只看楼主 加入收藏
未来的牛人
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-9-5
收藏
得分:0 
也可以!!
只要是用到主函数与自定义函数就可以
2006-09-08 10:51
cwande
Rank: 2
等 级:新手上路
威 望:3
帖 子:333
专家分:0
注 册:2006-8-18
收藏
得分:0 
[CODE]

#include <stdio.h>
#include <string.h>
#include<stdlib.h>
#define N 5
void abc(char num[][N*2])
{
int i , j ;
char temp[N*2];
for(i = 0 ; i < N ; i++)
{
for(j = 0 ; j < N - i - 1 ; j++)
{
if(strcmp(num[j] , num[j+1])<0)//比较大小与交换
{
strcpy(temp , num[j]);
strcpy((num[j]) , (num[j+1]));
strcpy((num[j+1]) , temp);
}
}
}
}

void main()
{
char num[N][2*N]={"nanjing","xuzhou","guangzhou","beijing","shanghai"};
int i ;
printf("排序前5个地区城市的名称为:\n");
for(i = 0 ; i <N ; i ++)
{
puts(num[i]);
}

abc(num);//调用自定义函数
printf("排序后5个地区城市的名称为:\n");
for(i = 0 ; i <N ; i ++)
{
puts(num[i]);
}
}

[/CODE]

汗,都懒得写代码了.......... cheat了一个威望,哈.....
2006-09-08 10:53
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用未来的牛人在2006-9-8 8:38:55的发言:

这一题是比较字符串大小!
但是要用主函数与自定义函数来做!

帮小弟看看这是怎么错的!! 只能用这个方法!

小弟还有个问题,二维数组与二级指针有什么不同。。。。



/**********************
将5个地区的名称排序,用主函数与自定义函数
**********************/
#include <stdio.h>
#include <string.h>
#define N 5
void abc(char num[N]);
void main()
{
char *num[N]={"nanjing","xuzhou","guangzhou","beijing","shanghai"};
int i ;
printf("排序前5个地区城市的名称为:\n");
for(i = 0 ; i <N ; i ++)
{
puts(num[i]);
}

abc(num[N]);//调用自定义函数
printf("排序后5个地区城市的名称为:\n");
for(i = 0 ; i <N ; i ++)
{
puts(num[i]);
}
}
void abc(char num[N]) / /函数参数不一致,一个是数组指针,一个是一唯数组
{
int i , j ;
char **temp ;
for(i = 0 ; i < N ; i++) //冒泡排序的思想
{
for(j = 0 ; j < N - i - 1 ; j++)
{
if(strcmp(num[j] , num[j+1])<0)//比较大小与交换
{
strcpy(temp , num[j]); //弄懂你比较的是什么,交换的又是什么.
strcpy((num[j]) , (num[j+1]));
strcpy((num[j+1]) , temp);
}
}
}
}


#include <stdio.h>
#include <string.h>
#define N 5

void abc(char *num[]);
int main()
{
char *num[N]={"nanjing","xuzhou","guangzhou","beijing","shanghai"};
int i ;
printf("排序前5个地区城市的名称为:\n");
for(i=0;i<N;i ++)
{
puts(num[i]);
}

abc(num);//调用自定义函数
printf("排序后5个地区城市的名称为:\n");
for(i = 0 ; i <N ; i ++)
{
puts(num[i]);
}
return(0);
}

void abc(char *num[]) //函数参数不一致,一个是数组指针,一个是一唯数组
{
int i , j ;
char *temp ;
for(i =0;i <N-1;i++)
{
for(j =0;j<N-i;j++)
{
if(strcmp(num[j],num[j+1])<0)//比较大小与交换
{
temp=num[j]; //,比较指针指向的内容,即字符串,但交换的是指针
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
}


倚天照海花无数,流水高山心自知。
2006-09-08 11:03
未来的牛人
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-9-5
收藏
得分:0 
谢谢各位了!!!
大恩不言谢!!
他姥姥的!!
这一题整整烦我2天了!!
终于解决了
2006-09-08 11:21
ww84020209
Rank: 1
等 级:新手上路
帖 子:190
专家分:0
注 册:2006-8-21
收藏
得分:0 
以下是引用nuciewth在2006-9-8 11:03:50的发言:


#include <stdio.h>
#include <string.h>
#define N 5

void abc(char *num[]);
int main()
{
char *num[N]={"nanjing","xuzhou","guangzhou","beijing","shanghai"};
int i ;
printf("排序前5个地区城市的名称为:\n");
for(i=0;i<N;i ++)
{
puts(num[i]);
}

abc(num);//调用自定义函数
printf("排序后5个地区城市的名称为:\n");
for(i = 0 ; i <N ; i ++)
{
puts(num[i]);
}
return(0);
}

void abc(char *num[]) //函数参数不一致,一个是数组指针,一个是一唯数组
{
int i , j ;
char *temp ;
for(i =0;i <N-1;i++)
{
for(j =0;j<N-i-1;j++) //这要多减1啊,不然num[j+1]越界了,还有我感觉冒泡冒反了
{
if(strcmp(num[j],num[j+1])<0)//比较大小与交换
{
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
}


2006-09-08 14:54
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
,是我欠考虑了.
排序的顺序是由自己的需要而定,冒泡排序没有规定的.

倚天照海花无数,流水高山心自知。
2006-09-08 21:22
快速回复:我的代码错在什么地方
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032431 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved