c编译错误
1、首先,我们启动编译软件程序,今天我们以VC++6.0为例。
注意事项:
编译语言是一种以编译器来实现的编程语言。它不像直译语言一样,由解释器将代码一句一句运行,而是以编译器,先将代码编译为机器码,再加以运行。理论上,任何编程语言都可以是编译式,或直译式的。它们之间的区别,仅与程序的应用有关。
B. C语言:下面的代码为什么会出现编译错误应当怎么改正
错误出在a=sum;这一句——因为构成C语言程序的基本单位是函数而不是C语句,这里的a=sum;不在任何函数中,所以编译器无法处理而出错。把它放到主函数中的printf("%d ",a(3,5));之前就可以了。函数外只能进行全局变量定义或声明,而不能进行其他操作,所以把int (*a)(int, int); a=sum;两句改成int (*a)(int, int)=sum;,让它成为声明变量a并初始化为sum也是可以的。你可以试试。
代码文本:
#include "stdio.h"
int sum(int a, int b);
int (*a)(int, int);
int main(int argc,char *argv[]){
a=sum;
printf("%d ",a(3,5));
return 0;
}
int sum(int a,int b){
return a+b;
}
C. c语言编译错误
int main(void){ main 改过来
D. c 编译提示错误
楼主你好。首先我说下你的函数第一行报错的问题。MAXLEN是你定义的一个宏,貌似不能把它作为形参(因为你已经把它定义成为宏)。你可以把后面一个形参改为int n,当然下面的MAXLEN也改为n,你只需要实参传进来的是MAXLEN就OK。
然后我说下你这个函数可能存在的问题:
函数貌似开始要用malloc函数开辟一段内存(记得函数执行完把它释放),因为没有开辟内存,s++操作可能不能执行。还有你返回的是s-t,我想你的本意是想记录输入的字符个数,并把它返回吧,如果前面指针操作有问题(没有开辟内存等引起的),那么这两个指针相减可能将被视为非法的。而你的函数返回值为int,可能会报错。
int getline(char *s,int n) /*这一行提示错误!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
{
int k;
s=(char *)malloc(sizeof(char)*100);
char *t;
t=s;
int c;
while(--n>0&&(c=getchar())!=EOF&&c!='\n')*s++=c;/*这一行错误!!!!!!!*/
if(c=='\n')*s++=c;
*s='\0';
k=s-t;
free(s);
return k;
}
我试了一下,你的程序改了MAXLEN和这个都没有报错,但是也没执行结果。你再看看吧,一家之言,仅供参考。希望对你有帮助。
E. c语言 编译错误
#include<stdio.h>
#definer3
#definec4
voidsum_r(intar[][c]);//---宏定义r不能在这里当变量用,观察你后续代码,这个参数没用,删掉
voidsum_c(int[][c]);
intsum2d(int(*ar)[c]);
intmain(void)
{
intjunk[r][c]={{2,4,6,8},{3,5,7,9},{12,10,8,6}};
sum_r(junk);//
sum_c(junk);//
printf("Sumofallelements=%d ",sum2d(junk));
return0;
}
voidsum_c(intar[][c])//
{
intr1;
intc1;
inttot;
for(c1=0;c1<c;c1++)
{
tot=0;
for(r1=0;r1<r;r1++)//
{
tot+=ar[r1][c1];
}
printf("col%dsum=%d ",c1,tot);//
}
}
voidsum_r(intar[][c])
{
intr1;
intc1;
inttot;
for(r1=0;r1<r;r1++)
{
tot=0;
for(c1=0;c1<c;c1++)
{
tot+=ar[r1][c1];
}
printf("row%dsum=%d ",r1,tot);//
}
}
intsum2d(int(*ar)[c])
{
intr1;
intc1;
inttot=0;
for(r1=0;r1<r;r1++)//
{
for(c1=0;c1<c;c1++)
{
tot+=ar[r1][c1];
}
}
returntot;//
}
F. C语言编译错误
在写#define PI 3.1416 语句时
前面应加空格。
G. c语言编译错误在哪里
把abc定义成浮点型数据就好了
因为,整数在做除法时,是整除,不带小数的,小数部分会舍去
double a,b,c ;
相应的后面的输入scanf()中的参数也要改成%lf
H. c程序编译错误
(1)语法问题,乘法表达错误。
k=1/(2n-1); 中 2N ---> 2*N
(2)主函数给个返回值(养成好习惯,因为根据编译环境不同提示错误)
int main(){
...
return 0;
}
其他的没有问题