所以本周我的作业的第二部分是:编写一个程序,接受任意数量的正整数,由 用户,然后打印出最高和最低整数,以及平均值 这两个。程序应接受数据,直到用户发出数据输入信号为止 输入负值即可完成。 该程序应使用Assignment 1中的函数,即返回的函数 两个整数参数中较大的一个,一个返回两个整数中较低的一个,一个 返回平均值。
我远远超出了我的深度,这是令人难以置信的。非常担心这个模块,因为它似乎并没有为我下沉。 :(
我似乎无法弄清楚如何使用未知数量的整数来做这件事。目前该计划引发了一个奇怪的结果。
到目前为止,我的代码是:
#include <stdio.h>
#include <stdlib.h>
int getLo(int num1, int num2);
int getHi(int num1, int num2);
float getAv(int num1, int num2);
int main()
{
int num1, num2;
int count=0,i;
int *storedNumb;
printf("Enter the amount of integers you would like to enter:\n\n\n\n");
scanf("%d", &count);
printf("Enter %d positive integers:\n", count);
storedNumb= (int *) calloc(count,sizeof(int));
for(i=0; i<count; ++i)
{
scanf("%d",&storedNumb[i]);
printf("\nYou entered %d\n",storedNumb[i]);
}
float avg = getAv(num1, num2);
if (num1 <= 0){ // if statement prompting a positive input
printf("Please enter POSITIVE integers!\n");
return 0;}
else if (num2 <= 0){
printf("Please enter POSITIVE integers!\n");
return 0;
}
printf("The smallest number you entered is: %d\n", getLo(num1, num2));
printf("The largest number you entered is: %d\n", getHi(num1, num2));
printf("%.2f is the average of the integers you entered\n", avg);
return 0;
}
float getAv(int num1, int num2)
{
return (num1 + num2) / 2.;
}
int getLo(int num1, int num2)
{
if (num1 < num2)
{
return num1;
}
else
{
return num2;
}
}
int getHi(int num1, int num2)
{
if (num1 > num2)
{
return num1;
}
else
{
return num2;
}
}
答案 0 :(得分:1)
尝试一下
的内容#include <stdio.h>
int main(int argc, const char * argv[]) {
int lo, hi, input;
scanf("\n%d", &input);
if(input >= 0) {
hi = input;
lo = input;
while(input >= 0) {
if(input > hi) {
hi = input;
}
if(input < lo) {
lo = input;
}
scanf("\n%d", &input);
}
}
printf("\nlo:%d", lo);
printf("\nhi:%d", hi);
printf("\navg:%d", (hi + lo)/2);
return 0;
}