c语言 define值的问题
写了一小段程序,想在以后用时改变s值即可改变程序中数组长度,但编译报错,求解答错在何处?(草草写的,有一些没用的变量没有删)#include<math.h>#includ...
写了一小段程序,想在以后用时改变s值即可改变程序中数组长度,但编译报错,求解答错在何处?(草草写的,有一些没用的变量没有删)
#include <math.h>
#include <stdio.h>
#define s 3;
#define epxl 1e-12;
double ita (double a[s])
{
double b=0;
int i;
for(i=0;i<s;i++)
{
b=b+a[i]*a[i];
}
return b;
}
void main()
{
double a[s][s];
double y[s],u[s];
double eta,btak,btak1,jc;
int i,j,k;
for (i=0;i<s;i++)
{
y[i]=1;
}
jc=ita (y);
printf("%f",jc);
}
将程序中的s全换成同一数字(如3)时程序编译通过,应该是define 的问题吧,不太明白,请教如何改动?(想达到只改s就可改变数组长度的目的) 展开
#include <math.h>
#include <stdio.h>
#define s 3;
#define epxl 1e-12;
double ita (double a[s])
{
double b=0;
int i;
for(i=0;i<s;i++)
{
b=b+a[i]*a[i];
}
return b;
}
void main()
{
double a[s][s];
double y[s],u[s];
double eta,btak,btak1,jc;
int i,j,k;
for (i=0;i<s;i++)
{
y[i]=1;
}
jc=ita (y);
printf("%f",jc);
}
将程序中的s全换成同一数字(如3)时程序编译通过,应该是define 的问题吧,不太明白,请教如何改动?(想达到只改s就可改变数组长度的目的) 展开
展开全部
你把#define后面的分号删掉就可以通过了
写成#define s 3
在C或C++语言源程序中允许用一个标识符来表示一个字符串,称为“宏”。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。宏定义是由源程序中的宏定义命令完成的。宏代换是由预处理程序自动完成的。
写成#define s 3
在C或C++语言源程序中允许用一个标识符来表示一个字符串,称为“宏”。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。宏定义是由源程序中的宏定义命令完成的。宏代换是由预处理程序自动完成的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#define s 3;
会导致编译时将所有的s全替换成“3;”了
宏定义时,不要带;结尾
去掉分号,改成:
#define s 3
也可以这样改一下:
const int s=3;
会导致编译时将所有的s全替换成“3;”了
宏定义时,不要带;结尾
去掉分号,改成:
#define s 3
也可以这样改一下:
const int s=3;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询