簡體   English   中英

關於c編程輸出的問題..

[英]having an issue about the output in c programming ..

我在輸入后運行輸出時遇到問題..在輸入變量后不顯示輸出,並且我不知道如何設置代碼..因此,如果你們可以幫助我,那將不勝感激..

#include <stdio.h>
#include <conio.h>

int read_temps (float temps[]);
int hot_days (int numOfTemp, float temps[]);
int printf_temps (int numOfTemp, float temps[], int numOfHotDays);

int main (void) {
int index = 0;
float tempVal;
float temps[31];
int numOfTemp, numOfHotDays;

do {
    printf ("Enter the temperature:");
    scanf ("%f", &tempVal);
    if (tempVal!=-500.0) {
        temps[index] = tempVal;
        index++;
    }
} while (tempVal != -500.0);

return ;

{
    int i;
    int count = 0;
    for (i = 0; i < numOfTemp; i++) {
        if (temps[i] > 32.0)
            count++;
    }
    return count;
}

{
    float sum = 0.0;
    int i;
    printf ("\nInput Temperatures:");
    printf ("\n-------------------------");

    for (i = 0;i < numOfTemp; i++) {
        printf ("\nDay %d : %.2fF", i+1, temps[i]);
        sum = sum + temps[i];
    }
    printf ("\nNumber of Hot Days : %d", numOfHotDays);
    printf ("\nAverage Temperature: %.2f", sum/numOfTemp);
}

{
    clrscr ();
    numOfTemp = read_temps (temps);
    numOfHotDays = hot_days (numOfTemp, temps);
    clrscr ();
    printf_temps (numOfTemp, temps, numOfHotDays);
    getch ();
}
}
 return ;

您只是告訴您的函數停止執行。

它確實按照您的指示進行。

這實際上是一個很好的努力。 您已經完美地完成了代碼邏輯,只是它們的排列不正確。

您具有要從main調用的子功能,它們main自身的作用域內。 效果不好。

您需要做的是首先將它們移出main並添加它們的聲明行。 然后,您需要從main調用它們。 換句話說,是這樣的:

#include <stdio.h>

int read_temps (float temps[]);
int hot_days (int numOfTemp, float temps[]);
int printf_temps (int numOfTemp, float temps[], int numOfHotDays);

int main (void) {
    int index = 0;
    float temps[31];
    int numOfTemp, numOfHotDays;

    // The code to call them has been cleaned up.

    numOfTemp = read_temps (temps);
    numOfHotDays = hot_days (numOfTemp, temps);
    printf_temps (numOfTemp, temps, numOfHotDays);

    return 0;
}

// All the functions that were subsumed in main
//   have been separated and properly defined here.

int hot_days (int numOfTemp, float temps[]) {
    int i;
    int count = 0;
    for (i = 0; i < numOfTemp; i++) {
        if (temps[i] > 32.0)
            count++;
    }
    return count;
}

int printf_temps (int numOfTemp, float temps[], int numOfHotDays) {
    float sum = 0.0;
    int i;
    printf ("\nInput Temperatures:");
    printf ("\n-------------------------");

    for (i = 0;i < numOfTemp; i++) {
        printf ("\nDay %d : %.2fF", i+1, temps[i]);
        sum = sum + temps[i];
    }
    printf ("\nNumber of Hot Days : %d", numOfHotDays);
    printf ("\nAverage Temperature: %.2f\n", sum/numOfTemp);
}

int read_temps (float temps[]) {
    int index = 0;
    float tempVal;
    do {
        printf ("Enter the temperature:");
        scanf ("%f", &tempVal);
        if (tempVal!=-500.0) {
            temps[index] = tempVal;
            index++;
        }
    } while (tempVal != -500.0);
    return index;
}

我基本上執行了以下步驟:

  • 刪除了諸如conio類的非標准內容。
  • 將嵌入式功能移到適當位置並提供原型。
  • 將一些變量從main移到它們所屬的其他函數。
  • 整理了一些次要的輸出內容。
  • 測試過:-)

下面的記錄顯示了示例運行:

Enter the temperature:3
Enter the temperature:4
Enter the temperature:5
Enter the temperature:6
Enter the temperature:50
Enter the temperature:-500

Input Temperatures:
-------------------------
Day 1 : 3.00F
Day 2 : 4.00F
Day 3 : 5.00F
Day 4 : 6.00F
Day 5 : 50.00F
Number of Hot Days : 1
Average Temperature: 13.60

而且您不應該在函數main()中返回任何內容

您已使用return; 在函數結束之前。 這將創建無效代碼 ,因此功能將無法正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM