我是初学者,我正在编写代码的问题。 我收到以下错误:“第9行中'{'标记之前的意外不合格ID”
另外,我不知道如何设置输出并让它显示出来,如果你们真的可以帮助我,我会很感激..
只是为了让你知道..我正在使用“代码块”
#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("\n Enter the noon temperature (500 as a sential value)");
scanf("%f",&tempVal);
if(tempVal!=500.0)
{
temps[index]=tempVal;
index++;
}
}while(tempVal!=500.0);
return index;
{
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("\nTemperatures of the month");
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 for a month : %.2f",sum/numOfTemp);
}
{
clrscr();
numOfTemp=read_temps(temps);
numOfHotDays=hot_days(numOfTemp,temps);
clrscr();
printf_temps(numOfTemp,temps,numOfHotDays);
getch();
}
}
答案 0 :(得分:2)
int main(void);
{
删除分号。你似乎误解了函数声明和定义的格式。
功能定义:
void foo(void)
{
//something
}
功能声明:
void foo(void);
答案 1 :(得分:2)
代码:
int main(void);
{
实际上是main
的原型,后面是一个左大括号。由于原型是一个独特的语义元素,因此括号在那时不是合法的标记。
您需要删除尾随分号;
:
int main(void)
{
您的main
函数中似乎还有无法访问的代码:
return index;
return
语句在do...while
循环后无条件执行,因此后面的代码永远不会被执行。
一旦整理了格式样式(例如,一直使用四个空格缩进),这将变得更加清晰。
换句话说,像这样的东西,无法访问的代码和不必要的大括号变得明显(不必要的大括号很可能是你忘记为你有(a)中):
#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 ("\n Enter the noon temperature (500 as a sentinel value)");
scanf ("%f", &tempVal);
if (tempVal!=500.0) {
temps[index] = tempVal;
index++;
}
} while (tempVal != 500.0);
return index;
{
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 ("\nTemperatures of the month");
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 for a month : %.2f", sum/numOfTemp);
}
{
clrscr ();
numOfTemp = read_temps (temps);
numOfHotDays = hot_days (numOfTemp, temps);
clrscr ();
printf_temps (numOfTemp, temps, numOfHotDays);
getch ();
}
}
还有一个最后的说明,尽管这与你眼前的问题无关。您应尽可能努力编写可移植代码,这将需要避免使用非标准conio
头文件以及使用clrscr
和getch
(特别是在getchar
时可用)。
(a)如果是的情况,你需要在每个函数之前添加定义行,并将它们移到main函数之外。
答案 2 :(得分: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("\n Enter the noon temperature (500 as a sential value)");
scanf("%f",&tempVal);
if(tempVal!=500.0)
{
temps[index]=tempVal;
index++;
}
}while(tempVal!=500.0);
return index;
{
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("\nTemperatures of the month");
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 for a month : %.2f",sum/numOfTemp);
}
{
clrscr();
numOfTemp=read_temps(temps);
numOfHotDays=hot_days(numOfTemp,temps);
clrscr();
printf_temps(numOfTemp,temps,numOfHotDays);
getch();
}
}
您没有提供您使用过的方法,并在main结束前使用了return。 这会产生死代码。所以无论如何这不会给出预期的输出。 首先纠正。或更新您的问题