| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 485 人关注过本帖
标题:这个程序老是死循环
只看楼主 加入收藏
fujian26
Rank: 1
等 级:新手上路
帖 子:131
专家分:0
注 册:2007-4-3
收藏
 问题点数:0 回复次数:6 
这个程序老是死循环
#include "stdio.h"
#define N 10
main()
{int k,i,j,h;
float a[N],t;
printf("input k=:");
scanf("%d",&k);
printf("input a[N]=:");
for(i=0;i<N;i++) scanf("%f",&a[i]);
while(k>=1)
{a[k]=0;h=N;h--;
for(j=1;j<N;j++)
for(i=0;i<N-j;i++)
{if(a[i]<a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;}}
for(i=0;i<h;i++) printf("%4f",a[i]);
scanf("%d",&k);}

}
题目是这样的:
从键盘输入任意10个整数存放在一个数组中,然后从键盘不段读入位置值,并删除指定位置上的元素,直到指定的位置小于1或数组中已无元素可删为止,要求每删除一次,即按顺序输出数组剩下的元素。
搜索更多相关主题的帖子: include 键盘 
2007-04-28 12:38
限量版猪头
Rank: 2
等 级:论坛游民
威 望:1
帖 子:165
专家分:30
注 册:2006-2-5
收藏
得分:0 
while(k&gt;=1)这有问题

2007-04-28 13:10
liuminghui
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:2882
专家分:0
注 册:2007-1-26
收藏
得分:0 

海鸽 is My Lover!!
2007-04-28 13:10
June2Ling
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-4-9
收藏
得分:0 
#include "stdio.h"
#define N 10
main()
{int k,i,j,h;
float a[N],t;
printf("input k=:");
scanf("%d",&k);
printf("input a[N]=:");
for(i=0;i<N;i++) scanf("%f",&a[i]);

h=N;
while(k>=1)
{a[k]=0;h--;
for(j=1;j<N;j++)
for(i=0;i<N-j;i++)
{if(a[i]<a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;}}
for(i=0;i<h;i++) printf("%4f",a[i]);
scanf("%d",&k);}

}
"h=N"不能放在循环体内,否则就会死循环了.

六月JVL风铃
2007-04-28 13:11
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
在循环体里面没有对k进行任何操作,如果你一开始输入的k>=1当然会死循环。。
还有"input a[N]=:" 这里面的N是不会被替换的。。。

这个社会太复杂。。。
2007-04-28 13:13
QQ285822391
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-4-21
收藏
得分:0 
以下是引用fujian26在2007-4-28 12:38:30的发言:
#include "stdio.h"
#define N 10
main()
{int k,i,j,h;
float a[N],t;
printf("input k=:");
scanf("%d",&k);
printf("input a[N]=:");
for(i=0;i<N;i++) scanf("%f",&a[i]);
while(k>=1)
{a[k]=0;h=N;h--;
for(j=1;j<N;j++)
for(i=0;i<N-j;i++)
{if(a[i]<a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;}}
for(i=0;i<h;i++) printf("%4f",a[i]);
scanf("%d",&k);}

}
题目是这样的:
从键盘输入任意10个整数存放在一个数组中,然后从键盘不段读入位置值,并删除指定位置上的元素,直到指定的位置小于1或数组中已无元素可删为止,要求每删除一次,即按顺序输出数组剩下的元素。

while(k>=1)
k没有在循环中执行任何操作.
里面也没有break;所以会死循环


信念+努力=希望
2007-04-28 13:20
fujian26
Rank: 1
等 级:新手上路
帖 子:131
专家分:0
注 册:2007-4-3
收藏
得分:0 
谢谢各位啊,看了很就就久都没扎找找到问题出在哪

退一步海阔天空.......
2007-04-28 13:57
快速回复:这个程序老是死循环
数据加载中...
 
   



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

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