c语言代码没错却编译有错
代码有错,修改如下:
#include <stdio.h>
int a[300], cnt=0 ;
double pjz1=0.0, pjz2=0.0 ;
void readDat();
void writeDat();
void jsValue()
{int i,a1,b1,c1,d1;
for(i=0;i<300;i++)
{a1=a[i]/1000;
b1=a[i]/100%10;
c1=a[i]/10%10;
d1=a[i]%10;
if(d1-a1-b1-c1==0)
{ cnt++;
pjz1+=a[i];
}
else pjz2+=a[i];
}
if(cnt==0) pjz1=0;
else pjz1/=cnt;
if(300-cnt==00) pjz2=0;
else pjz2/=300-cnt;
}
main()
{
int i ;
readDat() ;
jsValue() ;
writeDat() ;
printf("cnt=%d\n满足条件的平均值pzj1=%7.2lf\n不满足条件的平均值pzj2=%7.2lf\n", cnt,pjz1,pjz2);
}
void readDat()
{
FILE *fp ;
int i ;
fp = fopen("C:\\WEXAM\\35990001\\in.dat","r") ;
for(i = 0 ; i < 300 ; i++) fscanf(fp, "%d,", &a[i]) ;
fclose(fp) ;
}
void writeDat()
{
FILE *fp ;
fp = fopen("C:\\WEXAM\\35990001\\out.dat","w") ;
fprintf(fp, "%d\n%7.2lf\n%7.2lf\n", cnt, pjz1, pjz2) ;
fclose(fp) ;
}
㈡ C语言没有语法错误,但是一编译就有两个错误
上面信息是0错误,0警告。
你写的代码没问题。
㈢ C语言程序老是显示错误但是没有错是什么原因
从代码上看没有问题。
如果你是新安装的编译器,那么有可能是编译器配置问题。 (Errorspawningcl.exe)
也有可能是你工程中加了不止一个文件。(function main )
建议你鼠标点在1 errors位置,然后鼠标滚轮向上滚动,查看具体错误信息。根据错误信息分析具体原因。
㈣ c语言编程的代码没有错,为什么运行就错了
如果代码本身没有错误,那么可能就是软件的配置没有弄好,比如各种文件路径等!
㈤ c语言helloworld代码是对的,但编译错误
"代码是对的",不要把自己放到"我是对的"的位置上去,这样就没有办法找自己问题了.既然编译没过,肯定哪错了
你代码不完全对,main函数的signature应该是int main(int argc, char* argv[]),编译器只是检查的比较宽松,有些书籍也不够严谨
至于编译,明明是过了啊?为什么说编译错误?
㈥ C语言问题 我的代码好像没问题,但是过oj的时候就是说编译错误。
+个这个试试?
#include"stdafx.h"
我这里能过,不过sqrt那里出问题了

㈦ 下面是一段C语言的代码,逻辑,代码没问题,为什么运行的结果却不正确
这个代码是存在问题的。
char
*p;
这个只定义了一个指针,并且没有进行初始化,此时不知道p指向内存中的何处,可能是任何地方!!
scanf("%c",
&p)
这样的话,指针p的值就被修改成了你输入的字符的值了。
for(;*p!='\0';)
这句话,进行
*p
操作的话,那么就会将指针p的值作为地址,取出该地址处的一个字节,
然后与
'\0'
进行比较
后面的程序就与前面的一样了。
这样的程序或许可能运行的起来,但是,你输入的字符的值最大是不会超过255的,
也就是说你
*p
的值就是你内存中存储在
0x00
~
0xff
之间的某个值,这个是不确定的。
你要想输入字符串的话,必须首先分配内存空间才行!!!
char
str[256]
=
{
0
};
scanf("%s",
&str[0]);
然后再判断str的长度
或者
char
*p
=
(char*)
malloc(256);
//
分配
scanf("%s",
p);
free(p);
//
释放
㈧ C语言程序对的但是编译错误
前面的错误加个强制转换就行了
a = malloc(n*sizeof(int));
b = malloc(m*sizeof(int));
改成
a =(int*) malloc(n*sizeof(int));
b =(int*) malloc(m*sizeof(int));
后面的不知道你为什么要改。
