| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 434 人关注过本帖
标题:到底错在那里????
只看楼主 加入收藏
caizhihong
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2005-10-27
结帖率:100%
收藏
 问题点数:0 回复次数:7 
到底错在那里????

这是一个一维数组的问题:已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。
#include<stdio.h>
#include<conio.h>

int main(void)
{
int a[9]={-98,-45,-36,0,12,23,85,98};
int i,j,k;
scanf("%d",&i);
for(j=0;j<8;j++)
if(i<a[j])
break;
k=j;
a[k]=i;
for(j=8;j>=k;j--)
a[j+1]=a[j];
for(k=0;k<9;k++)
printf("%d ",i);
getch();
}
当输入了一个数之后,能把它排出顺序,但是它会把一下也盖掉的!!
如:输入一个数学为“5”,则输出的排序为:-98,-45,-36,0,5,5,23,85,98
请高手指教,其中错在那里!!!

2006-05-21 14:33
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

写一串数字自己模拟下,看看问题


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-21 14:36
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
for(j=8;j>=k;j--)
a[j+1]=a[j];


8在那里

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-21 14:37
caizhihong
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2005-10-27
收藏
得分:0 

小弟不明,8不是可以临时赋值勤的吗?
还有写一串字符串去模拟一下,又应该怎么样去做,还是不明!!


盖茨来电话,他跟我说了一大串的英语。我真的不知道到底说了什么!!我长叹了一声:你还是说C语言吧!
2006-05-21 15:48
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
以下是引用caizhihong在2006-5-21 15:48:00的发言:

小弟不明,8不是可以临时赋值勤的吗?
还有写一串字符串去模拟一下,又应该怎么样去做,还是不明!!

8出现了,9怎么办,自己好好想想


日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-21 15:50
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 

#include<stdio.h>
#include<conio.h>

int main(void)
{
int a[9] = {-98,-45,-36,0,12,23,85,98}, value, j, k;

scanf("%d", &value);

for (j = 0; j < 8; j++)
{
if ( value < a[j])
{
break;
}
}

k = j;

for(j = 7; j >= k; j--)
{
a[j + 1] = a[j];
}
a[k] = value;

for(k = 0; k < 9; k++)
printf("%d ",a[k]);
printf("\n");

getch();
return 0;
}



日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-21 16:08
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
收藏
得分:0 
#include<stdio.h>
#include<conio.h>

int main(void)
{
int a[9]={-98,-45,-36,0,12,23,85,98};
int i,j,k;
scanf("%d",&i);
for(j=0;j<8;j++)
if(i<a[j])
break;
k=j;
a[k]=i; /*原始的a[k]未保存就被你给删了*/
for(j=8;j>=k;j--)
a[j+1]=a[j];
for(k=0;k<9;k++)
printf("%d ",i);
getch();
}

2006-05-21 16:17
caizhihong
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2005-10-27
收藏
得分:0 

六楼,真好!!
谢谢了,今天真使我矛塞顿开!!


盖茨来电话,他跟我说了一大串的英语。我真的不知道到底说了什么!!我长叹了一声:你还是说C语言吧!
2006-05-21 16:52
快速回复:到底错在那里????
数据加载中...
 
   



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

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