| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 660 人关注过本帖
标题:[求助]求 助!!!
只看楼主 加入收藏
zefil
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-5-27
收藏
 问题点数:0 回复次数:8 
[求助]求 助!!!
求助各位大侠
现在有一个小小的问题如下:
"对键盘输入的数字进行排序,主要问题是:用回车符来结束输入,输入各数字用空格间隔,输入个数不定(主要难题),把输入的各数字赋予数组(用于以后程序扩充),数组是否可以用无穷数组;
程序中的排序用泡沫法,这一段可以省略."
希望各位大侠给出个大体的程序框架
不胜感激~!
搜索更多相关主题的帖子: 键盘 泡沫 不胜感激 
2005-11-06 10:19
zefil
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-5-27
收藏
得分:0 

数组如果不能用无穷数组,最大值定为50

2005-11-06 10:21
无铭剑客
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2005-10-31
收藏
得分:0 
#include "stdlib.h"
#include "stdio.h"
main()
{ int i,j,t;
char ch[50];
char c;
printf("please input some numbers:");
c=getchar();
ch[0]=c;
for(i=1;i<50&&ch[i-1]!='\n';i++)
{ c=getchar();
ch[i]=c;
}
for(i=0;i<strlen(ch);i++)
for(j=0;j<strlen(ch)-i-1;j++)
if(ch[j]>ch[j+1])
{ t=ch[j];ch[j]=ch[j+1];ch[j+1]=t;}
for(i=0;i<strlen(ch);i++)
printf("%c\n",ch[i]);
}
因编的太仓促,程序可能难免存在漏洞。但经简单调试,能运行。

[此贴子已经被作者于2005-11-6 14:59:24编辑过]

2005-11-06 11:18
无铭剑客
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2005-10-31
收藏
得分:0 

无穷数组我还没有听说过,但顾名思义的话,我认为是不存在的,即使存在也是不能用C语言描述的。因为它的地址会占无穷的空间,这好象是计算机不能满足的。

2005-11-06 15:05
zefil
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-5-27
收藏
得分:0 
非常感谢!!!
2005-11-06 15:32
zefil
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-5-27
收藏
得分:0 
我运行以后,出现了一个小小的问题
就是说,当输入的数学是二位数以上的时候,它就不能认得它是一个整体了
因为这段程序段没有体现出:“用空格来间隔各数字”
2005-11-06 16:05
无铭剑客
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2005-10-31
收藏
得分:0 
程序之所以不能输入两位数的整数,是因为我原来的方法用了字符型数组而非整型,在字符型数组中,两位数是两个数组因素,所以会出错。现我将字符型数组改为了整型数组,相信应该可以。程序还未来的及运行,难免有些小错误。
#include "stdlib.h"
#include "stdio.h"
main()
{ int i,j,t,c;
int ch[50];
printf("please input some numbers:");
scanf("%d",&c);
ch[0]=c;
for(i=1;i<50&&ch[i-1]!='\n';i++)
{ scanf("%d",&c);
ch[i]=c;
}
for(i=0;i<strlen(ch);i++)
for(j=0;j<strlen(ch)-i-1;j++)
if(ch[j]>ch[j+1])
{ t=ch[j];ch[j]=ch[j+1];ch[j+1]=t;}
for(i=0;i<strlen(ch);i++)
printf("%d\n",ch[i]);
}
2005-11-07 19:09
zefil
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-5-27
收藏
得分:0 
停不下来!!!
不知道什么意识!!!
2005-11-09 19:15
freeforever
Rank: 4
等 级:业余侠客
威 望:3
帖 子:368
专家分:201
注 册:2005-11-2
收藏
得分:0 
#include "stdio.h"
#include "string.h"
main()
{ int i,j,t,len,count=0;
int ch[50];
char str[200];
FILE *fp;
printf("please input some numbers:");
gets(str);
len=strlen(str);
if((fp=fopen("1.txt","w"))==NULL)
{
printf("\nOpen file error!");
return(-1);
}
for(i=0;i<len;++i)
{
if(str[i]==' ')
{
fputc('\n',fp);
++count;
}
else
fputc(str[i],fp);
}++count;
fclose(fp);
if((fp=fopen("1.txt","r"))==NULL)
{
printf("\nOpen file error!");
return(-1);
}
for(i=0;i<count;++i)
fscanf(fp,"%d",&ch[i]);
fclose(fp);
for(i=0;i<count;++i)
for(j=0;j<count-i-1;++j)
if(ch[j]>ch[j+1])
{ t=ch[j];ch[j]=ch[j+1];ch[j+1]=t;}
for(i=0;i<count;i++)
printf("%d\n",ch[i]);
}
C-FREE3.5下通过

其实我也很无聊!
2005-11-10 18:20
快速回复:[求助]求 助!!!
数据加载中...
 
   



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

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