我正在尝试用c创建一个程序:
•一次从用户那里获得正值
•使用循环语句
的未知数量的正值•通过程序提供的提示一次输入一个正值
•当用户在提示符处输入负值时,它会终止数据输入。
•数据输入终止后,程序将在屏幕上显示以下信息:
• The largest positive value entered
• The smallest positive value entered
• The average of all the values enter
还试图在不使用数组或高级数据结构的情况下完成此任务。主要是尝试通过使用变量,循环语句和条件语句(如if,else。
)来完成任务而(n> 0)
之后我就被卡住了。这是我正在努力完成我目前正在完成的任务的程序。任何帮助将不胜感激。答案 0 :(得分:1)
我将为您提供一个示例方法。但是,此示例不验证用户输入。您验证用户输入 非常重要,这是您所期望的。我将把这作为阅读的练习:
#include <stdio.h>
#include <limits.h>
int main(void) {
int input;
int total = 0;
int max = 0;
int count = 0;
int min = INT_MAX;
while(scanf("%d", &input)) {
if (input<0)
break;
if (input>max)
max = input;
else if (input<min)
min = input;
total += input;
count++;
}
if (count>0)
printf("Max: %d\tMin: %d\tAverage: %f\n", max, min, (double)total/count);
else
printf("No positive numbers entered\n");
return 0;
}
答案 1 :(得分:0)
欢迎编程。
你有一个问题要解决,幸运的是它以一种非常明确的方式陈述。后来的问题不会那么清楚。
下一步是分析它。在实践中,这意味着将它拆开以检查问题的每个部分,理解它们,并看看它们如何组合在一起。您可以看到指定的部分解决方案可以帮助您入门:“使用循环语句”。
问题指定输入(将输入的数字)以及程序将产生的输出。让我们以简化的方式介绍它。
对于每个输出,您需要考虑如何从输入中获取它们。
int
。您的规范没有说“整数”或“整数”,因此更好的选择可能是float
。这是您应该向您的客户/用户/老师澄清的示例。现在,让我们坚持int
问:应该初始化每个变量。你会给它什么初始值?The_largest_positive_value_entered
,但我们很快就会厌倦打字和阅读。 maximum
很好且相当清楚,max
也很好,但通常会避免像m
这样的名称,因为它们没有足够的含义。您需要对每个输出执行类似的推理,以及如何决定循环,以及如何处理nun-numeric输入和无输入。
因为你是初学者,所以先编写程序,使用just和maximum,然后测试它,然后添加最小代码并测试它,然后测试平均值等。
观察代码如何与调试器一起使用以帮助您自己学习,并将printf语句(您稍后将注释掉)放入您想要了解的输出值。
避免复制其他人的代码。编程是您通过做学习的实用技能。阅读其他人的代码可能很好,因为你可以了解风格,技巧和想法。但是如果你想学习编程,不要复制代码。