有关c编程输出的问题..

时间:2013-11-13 03:30:58

标签: c codeblocks

我在输入后运行输出时出现问题。 我输入变量后输出没有显示,我不知道如何设置代码.. 所以,如果你们可以帮助我,那将是非常感激的..

#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 个答案:

答案 0 :(得分:3)

 return ;

你刚刚告诉你的功能停止执行。

这正是你告诉它的。

答案 1 :(得分: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

答案 2 :(得分:1)

你不应该在函数main()

中返回任何内容

答案 3 :(得分:0)

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