程序设计,究竟哪错了?!求大神指导!!!
①程序运行时先显示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;
} 展开
②对这一组数按从大到小的顺序进行排序。
③将排序后的这一组数输出到屏幕上。
编程可用素材: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;
} 展开
2个回答
展开全部
错误如下:
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回车就结束输入了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询