| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4229 人关注过本帖
标题:关于for循环中break跳出的问题,各位帮帮忙
只看楼主 加入收藏
wjswym1314
Rank: 1
等 级:新手上路
帖 子:16
专家分:9
注 册:2009-8-23
结帖率:100%
收藏
已结贴  问题点数:15 回复次数:2 
关于for循环中break跳出的问题,各位帮帮忙
这是个先把数组按从大到小的顺序排列,然后输入一个数,插入到数组中,也要按顺序排列,
我认为在break的那个循环中已经确定了循环的次数,怎么还要break呢 而且不写break的话程序得不到想要的结果
#include <stdio.h>
main()
{
 int a[]={58,48,96,12,7,53,69,74};
 int i,j,q,p,s,t,n;
 for(i=0;i<8;i++)
 {
  p=i;q=a[i];
  for(j=i+1;j<8;j++)
  if(q<a[j]){p=j;q=a[j];}
  if(i!=p){s=a[i];a[i]=a[p];a[p]=s;}
  printf("%d ",a[i]);
}
printf("input a number:\n");
scanf("%d",&n);
printf("\n");
for(i=0;i<8;i++)
{
  if(n>a[i])
  {for(t=7;t>=i;t--)
    a[t+1]=a[t];  break; }
  }
 a[i]=n;
 for(i=0;i<9;i++)
 printf("%d ",a[i]);
   getch();
}
搜索更多相关主题的帖子: break 
2009-09-20 23:05
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:15 
插入个break是找到插入点,插入点后的元素往后移,放下就退出循环。
你的数组定义要多定义一个元素,才有位置放入,否则会丢个数。排序的外for循环多了一次,7次就好。

还是给你改过后的程序好了。:
程序代码:
#include <stdio.h> 
main() 
{ 
int a[9]={58,48,96,12,7,53,69,74}; 
int i,j,q,p,s,t,n; 
for(i=0;i<7;i++) 
{ 
  p=i;q=a[i]; 
  for(j=i+1;j<8;j++) 
  if(q<a[j]){p=j;q=a[j];} 
  if(i!=p){s=a[i];a[i]=a[p];a[p]=s;} 
  printf("%d ",a[i]); 
} 
printf("input a number:\n"); 
scanf("%d",&n); 
printf("\n"); 
for(i=0;i<8;i++) 
{ 
  if(n>a[i]) 
  {for(t=8;t>=i;t--) 
    a[t+1]=a[t];  break; } 
  } 
a[i]=n; 
for(i=0;i<9;i++) 
printf("%d ",a[i]); 
   getch(); 
} 


[ 本帖最后由 UserYuH 于 2009-9-20 23:39 编辑 ]

努力—前进—变老—退休—入土
2009-09-20 23:38
cuixingasd
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:54
专家分:135
注 册:2009-3-24
收藏
得分:0 
UserYuh 回答问题每次都很清晰透彻,值得敬仰!
2009-09-21 08:01
快速回复:关于for循环中break跳出的问题,各位帮帮忙
数据加载中...
 
   



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

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