2016-11-09 80 views
0

因此,本週我的作業的第二部分是:編寫一個程序,該程序接受用戶提供的任意數量的正整數,然後輸出最高和最低整數,如下所示:以及這兩者的平均值 。程序應該接受數據,直到用戶通過輸入負值表示數據輸入爲 完成爲止。 程序應該使用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; 
    } 

} 
+1

行有什麼奇怪的結果,該計劃拋出了? – davedwards

+0

你真的需要存儲所有的值的東西嗎? – 2501

+0

嗨,我在這裏S中的結果 輸入整數金額,你想進入: 輸入4個正整數: 您進入6 您輸入4 你進入9 您輸入了7 您輸入的最小單數是:88 您輸入的最大數字是:4201024 2100556.00是aver輸入整數的年齡 過程返回0(0x0)執行時間:35.329秒 按任意鍵繼續。 – sls1981

回答

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; 
}