0

我在输入输入后运行输出时遇到问题.. 输入变量后输出不显示,我不知道如何设置代码.. 所以如果你们能帮我解决这个问题,那将不胜感激..

#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 ();
}
}
4

4 回答 4

3
 return ;

你刚刚告诉你的函数停止执行。

它完全按照你的吩咐去做。

于 2013-11-13T03:33:32.260 回答
2

这实际上是一个很好的努力。您已经完美地完成了代码逻辑,只是它们没有正确排列。

您拥有要调用的子函数,这些子函数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
于 2013-11-13T03:49:48.047 回答
1

而且你不应该在函数 main() 中返回任何内容

于 2013-11-13T03:37:11.850 回答
0

return;在功能结束之前使用过。这将创建死代码,因此函数将无法按预期工作。

于 2013-11-13T03:39:35.810 回答