C 找到这个简单代码的错误?

C 找到这个简单代码的错误?,c,scanf,C,Scanf,我被困在这些电话线上大约一个小时了。有人能帮我查一下密码吗 #include <stdio.h> #define NUM 20; int main(void) { int fckingshit[NUM],i; printf("Enter 20 integers now: "); for(i=0;i<NUM;i++) scanf("%d",&fckingshit[i]); return 0; } #定义NUM 20是错误的。应该是 #define

我被困在这些电话线上大约一个小时了。有人能帮我查一下密码吗

#include <stdio.h>
#define NUM 20;
int main(void)
{
  int fckingshit[NUM],i;
  printf("Enter 20 integers now: ");
  for(i=0;i<NUM;i++)
    scanf("%d",&fckingshit[i]);
  return 0;
}
#定义NUM 20是错误的。应该是

#define NUM 20
#定义NUM 20是错误的。应该是

#define NUM 20
#定义NUM 20是错误的。应该是

#define NUM 20
#定义NUM 20是错误的。应该是

#define NUM 20

问题是

#include <stdio.h>
#define NUM 20
int main(void)
{
  int fckingshit[NUM];
  int i;
  printf("Enter 20 integers now: ");
  for(i=0;i<NUM;i++)
    scanf("%d",&fckingshit[i]);
  return 0;
}
#包括
#定义数字20
内部主(空)
{
整数fckingshit[NUM];
int i;
printf(“现在输入20个整数:”);

对于(i=0;i而言,问题在于宏中的

#include <stdio.h>
#define NUM 20
int main(void)
{
  int fckingshit[NUM];
  int i;
  printf("Enter 20 integers now: ");
  for(i=0;i<NUM;i++)
    scanf("%d",&fckingshit[i]);
  return 0;
}
#包括
#定义数字20
内部主(空)
{
整数fckingshit[NUM];
int i;
printf(“现在输入20个整数:”);

对于(i=0;i而言,问题在于宏中的

#include <stdio.h>
#define NUM 20
int main(void)
{
  int fckingshit[NUM];
  int i;
  printf("Enter 20 integers now: ");
  for(i=0;i<NUM;i++)
    scanf("%d",&fckingshit[i]);
  return 0;
}
#包括
#定义数字20
内部主(空)
{
整数fckingshit[NUM];
int i;
printf(“现在输入20个整数:”);

对于(i=0;i而言,问题在于宏中的

#include <stdio.h>
#define NUM 20
int main(void)
{
  int fckingshit[NUM];
  int i;
  printf("Enter 20 integers now: ");
  for(i=0;i<NUM;i++)
    scanf("%d",&fckingshit[i]);
  return 0;
}
#包括
#定义数字20
内部主(空)
{
整数fckingshit[NUM];
int i;
printf(“现在输入20个整数:”);
对于(i=0;iremove;after#define NUM 20;
它应该是#define NUM 20

remove;after#define NUM 20;
它应该是#define NUM 20

remove;after#define NUM 20;
它应该是#define NUM 20

remove;after#define NUM 20;
它应该是#define NUM 20

#define
's定义后不需要分号,因为它们不是指令。相反,每次在代码中遇到使用它的情况时,预处理器都会替换
#define
的主体。在预处理代码后,它会扩展
#define
对于
int fckingshit[20;],i;
,编译器将生成一个错误

for
语句相同,它被转换为
for(i=0;i
#define
的定义后不需要分号,因为它们不是指令。相反,每次在代码中遇到用法时,预处理器都会替换
#define
的主体。在预处理代码后,它会将
#define
扩展为
int[20;],i;
,因此编译器生成错误

for
语句相同,它被转换为
for(i=0;i
#define
的定义后不需要分号,因为它们不是指令。相反,每次在代码中遇到用法时,预处理器都会替换
#define
的主体。在预处理代码后,它会将
#define
扩展为
int[20;],i;
,因此编译器生成错误

for
语句相同,它被转换为
for(i=0;i
#define
的定义后不需要分号,因为它们不是指令。相反,每次在代码中遇到用法时,预处理器都会替换
#define
的主体。在预处理代码后,它会将
#define
扩展为
int[20;],i;
,因此编译器生成错误


for
语句相同,它被翻译为
for(i=0;i
使用时不带“;”,应该解决您的问题
使用时不带“;”应该解决您的问题
使用时不带“;”,应该可以解决您的问题

#define
使用时没有“;”,应该可以解决您的问题

正如所有答案所说,错误是宏定义中的分号

#define NUM 20;
应该是:

#define NUM 20
#define
指令是一组名为的指令的一部分。该指令的其他示例包括
#include
#ifdef
等。这些指令在编译器将源代码转换为二进制文件之前由预处理器进行解释。
#define
就像一个超级强大的“查找并替换”,因此,当预处理器处理您的示例时,它的结尾如下所示:

#define NUM 20;
...
  int fckingshit[20;];
...
事实上,预处理器会为您生成如下内容,例如:

...
# 493 "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/stdio.h" 2 3 4
# 2 "test.c" 2

int main(void)
{
  int fckingshit[20;],i;
  printf("Enter 20 integers now: ");
  for(i=0;i<20;;i++)
    scanf("%d",&fckingshit[i]);
  return 0;
}
。。。
#493“/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/stdio.h”2 3 4
#2“测试c”2
内部主(空)
{
int fckingshit[20;],i;
printf(“现在输入20个整数:”);

对于(i=0;i,正如所有答案所说,错误是宏定义中的分号

#define NUM 20;
应该是:

#define NUM 20
#define
指令是一组名为的指令的一部分。此指令的其他示例包括
#include
#ifdef
等。这些指令在编译器将源代码转换为二进制文件之前由预处理器进行解释。
#define
就像一个超级强大的“查找并替换”,因此,当预处理器处理您的示例时,它的结尾如下所示:

#define NUM 20;
...
  int fckingshit[20;];
...
事实上,预处理器会为您生成如下内容,例如:

...
# 493 "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/stdio.h" 2 3 4
# 2 "test.c" 2

int main(void)
{
  int fckingshit[20;],i;
  printf("Enter 20 integers now: ");
  for(i=0;i<20;;i++)
    scanf("%d",&fckingshit[i]);
  return 0;
}
。。。
#493“/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/stdio.h”2 3 4
#2“测试c”2
内部主(空)
{
int fckingshit[20;],i;
printf(“现在输入20个整数:”);

对于(i=0;i,正如所有答案所说,错误是宏定义中的分号

#define NUM 20;
应该是:

#define NUM 20
#define
指令是一组名为的指令的一部分。此指令的其他示例包括
#include
#ifdef
等。这些指令在编译器将源代码转换为二进制文件之前由预处理器进行解释。
#define
就像一个超级强大的“查找并替换”,因此,当预处理器处理您的示例时,它的结尾如下所示:

#define NUM 20;
...
  int fckingshit[20;];
...
事实上,预处理器为您生成如下内容: