程序设计,究竟哪错了?!求大神指导!!!

①程序运行时先显示Input:,再从键盘上读入一组数(小数部分最多1位),数与数之间只使用空格或回车作分隔。数可正可负,最多100个,但若读入的数为-567时,则表示输入...   ①程序运行时先显示Input:,再从键盘上读入一组数(小数部分最多1位),数与数之间只使用空格或回车作分隔。数可正可负,最多100个,但若读入的数为-567时,则表示输入结束且-567不算在该组数内。
  ②对这一组数按从大到小的顺序进行排序。
  ③将排序后的这一组数输出到屏幕上。
  编程可用素材:printf("Input: ")、printf("\nResult: ")、printf("%.1f "…。
#include <stdio.h>

int main(void)
{
int i, j, k, m;
float num[100], exc;

printf("Input:");
for (i = 0; i < 100; i++)
{
scanf("%d", &num[i]);
if (num[i] = -567)
{
num[i] = 0;
break;
}
}
for (j = 0; j < i - 1; j++)
{
for (k = 0; k < i - 1 - j; k++)
{
if (num[k] < num[k+1])
{
exc = num[k];
num[k] = num [k + 1];
num[k + 1] = exc;
}
}
}
printf("\nResult: ");
for (m = 0; m < i - 1; m++)
{
printf("%.1f ", num[m]);
}
return 0;
}
展开
 我来答
wchyumo2011
推荐于2016-02-13 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2711万
展开全部

错误如下:

1、判断相等用两个等于号,一个等于号是赋值符号

2、定义float类型的数输入时格式为%f

3、总共输入了i个数,最后输出时循环控制为小于i

#include <stdio.h>

int main(void)
{
int i, j, k, m;
float num[100], exc;

printf("Input:");
for (i = 0; i < 100; i++)
{
scanf("%f", &num[i]);////////////
if (num[i] == -567)/////////////
{
num[i] = 0;
break;
}
}
for (j = 0; j < i - 1; j++)
{
for (k = 0; k < i - 1 - j; k++)
{
if (num[k] < num[k + 1])
{
exc = num[k];
num[k] = num[k + 1];
num[k + 1] = exc;
}
}
}
printf("\nResult: ");
for (m = 0; m < i; m++)//////////////
{
printf("%.1f ", num[m]);
}
return 0;
}
更多追问追答
追问
我按你说的改了,但是怎么结束输出呢?敲回车没法停止输出啊。。。
追答
这个,题目有说啊,输入-567回车就结束输入了
obpt123
2015-12-09 · 超过17用户采纳过TA的回答
知道答主
回答量:54
采纳率:100%
帮助的人:29万
展开全部
scanf("%d", &num[i]); 需要改为 scanf("%.1f",...);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式