| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1811 人关注过本帖
标题:求c程序设计一道题的标准答案~!
只看楼主 加入收藏
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 

#include<stdio.h>
#define N 3/*这里改为三以上也可以,但记住一行里不要超出79个字符*/
int main()
{
char c[N][80],*a;
int i,j=0,max=0;
for(i=0;i<N;i++)
gets(*(c+i));
a=*(c+0);

for(i=0;i<N;i++)
{
while(*a&&c[i][j]&&*a==c[i][j])
{
a++;
j++;
}
if(*a<c[i][j])
{a=*(c+i);
max=i;
}
else
a=*(c+max);

j=0;
}
a=*(c+max);
printf("\nMAX STRING:%s\n",a);
}

[此贴子已经被作者于2007-3-5 22:12:39编辑过]


谁有强殖装甲第二部,可以Q我460054868
2007-03-05 22:12
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

输入的东西总要存起来吧,这个就要分配空间了.


倚天照海花无数,流水高山心自知。
2007-03-06 11:50
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 

直接利用stdlib.h中的快排

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int sort_function( const void *a, const void *b);

char list[3][10];

int main(void)
{
int x;
for(x = 0; x < 3; x++) scanf("%s",list[x]);
qsort((void *)list, 3, sizeof(list[0]), sort_function);
for (x = 0; x < 3; x++)
printf("%s\n", list[x]);
return 0;
}

int sort_function( const void *a, const void *b)
{
return( strcmp(a,b) );
}


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-03-06 12:15
iloveyu
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-2-1
收藏
得分:0 

同意11楼的。

2007-03-06 13:45
davidloves
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2007-1-6
收藏
得分:0 

他那里运行会出现非法操作好像是使用了野指针,访问了非法地址


2007-03-06 17:06
zwlcdh
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-2-8
收藏
得分:0 
我又瞎想了一个,这样可不可以!
#include<stdio.h>
void sort(char *name[],int n)
{char *temp;
int i,j,k;
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(strcmp(name[k],name[j])>0) k=j;
if(k!=i)
{temp=name[i];name[i]=name[k];name[k]=temp;}
}
}
void print(char *name[],int n)
{int i;
for(i=0;i<n;i++)
printf("%s\n",name[i]);
}
void main(int argc,char *argv[])
{
sort(argv,argc);
print(argv,argc);
} /*只是主函数变一下*/

[此贴子已经被作者于2007-3-7 16:32:48编辑过]

2007-03-06 21:23
zwlcdh
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-2-8
收藏
得分:0 
11L
char c[N][80];这样不浪费内存单元马?
我是想建个一个指针数组,输入字符时不会浪费内存单元,
也就是说每个字符串之间应该是紧密排列的。不知道应该怎么编写输入这段!!
2007-03-06 21:28
zcs302
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-3-6
收藏
得分:0 
if(strcmp(name[k],name[i])>0) k=j;


这里的 i 是不是应该是 j 呢?
k和i 的初始值相等哦,比较来干吗啊?
i 的话,内循环就白循环了!!!!!!!!

[此贴子已经被作者于2007-3-7 10:11:47编辑过]

2007-03-06 22:58
zwlcdh
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-2-8
收藏
得分:0 

对对,楼上说得对,又发现错误拉!

2007-03-07 16:30
zcs302
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-3-6
收藏
得分:0 

那现在能出正确答案了吗?

2007-03-07 20:33
快速回复:求c程序设计一道题的标准答案~!
数据加载中...
 
   



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

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