c语言求错error C2065: 'printf' : undeclared identifier

#include "stdio.h"
#include "stdafx.h"
#include <stdlib.h>
#define num 100
int d_a(int a[]);
int c_a(int * a);
int main(int argc, char* argv[])
{
int a[num];
d_a(a);
c_a(a);
return 0;
}
int d_a(int a[])
{
int c;
for(c=0;c<num;c++)
{
a[c]=rand()%100;
}
return (0);
}
int c_a(int * a)
{
int c;
for(c=0;c<num;c++)
{
printf("%d\n",a[num]);
}
return(0);
}

--------------------Configuration: xxx - Win32 Debug--------------------
Compiling...
xxx.cpp
D:\学习\手打程序\xxx\xxx.cpp(30) : error C2065: 'printf' : undeclared identifier
执行 cl.exe 时出错.

xxx.exe - 1 error(s), 0 warning(s)

第1个回答  2012-12-04

这是你的代码运行的结果 ,没报错。我在VC++6.0上运行的。

追问

为什么它没有随机?

追答

#include "stdafx.h"  //我在VC6.0 下,不要这个头文件就可以运行,如果这代码还运行不了,你把这个头文件注释一下
#include "stdio.h"
#include <time.h>
#include <stdlib.h>
#define num 100
int d_a(int a[]);
int c_a(int * a);
int main(int argc, char* argv[])
{
 int a[num];
 d_a(a);
 c_a(a);
 return 0;
}
int d_a(int a[])
{
 int c;
 srand(time(NULL)); //随机种子
 for(c=0;c<num;c++)
 {
  a[c]=rand()%100;
 }
 return (0);
}
int c_a(int * a)
{
 int c;
 for(c=0;c<num;c++)
 {
  printf("%d\n",a[c]); //问题
 }
 return(0);
}这个的随机结果

缺了srand(time(NULL))函数,srand函数是随机数发生器的初始化函数。srand()的功能就是就是设置产生随机数的公式的参数。srand(time(NULL))使得随机数种子随时间的变化而变化

第2个回答  推荐于2017-09-27
#include "stdafx.h" //我在VC6.0 下,不要这个头文件就可以运行,如果这代码还运行不了,你把这个头文件注释一下
#include "stdio.h"
#include <time.h>
#include <stdlib.h>
#define num 100
int d_a(int a[]);
int c_a(int * a);
int main(int argc, char* argv[])
{
int a[num];
d_a(a);
c_a(a);
return 0;
}
int d_a(int a[])
{
int c;
srand(time(NULL)); //随机种子
for(c=0;c<num;c++)
{
a[c]=rand()%100;
}
return (0);
}
int c_a(int * a)
{
int c;
for(c=0;c<num;c++)
{
printf("%d\n",a[c]); //问题
}
return(0);
}追问

我在我原来的程序上只把随机种子那里改了

为什么会显示这样的结果

左边是复制粘贴你的,右边是我在原来的基础上做了修改的结果。

追答

printf("%d\n",a[c]); //问题
你仔细看我的注释啊。。。还要我一个一个全部说出来嘛

本回答被提问者和网友采纳
第3个回答  2012-12-04
#include "stdio.h" 改成尖括号放到#include "stdafx.h" 下面试试
第4个回答  2012-12-04
#include "stdio.h"改成#include <stdio.h> 试试
相似回答