首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

宏定义的有关问题

2012-02-23 
宏定义的问题为什么下面程序printf里的N不会被替换成10?如何才能做到这一点?#include stdio.h#def

宏定义的问题
为什么下面程序"printf"里的"N"不会被替换成"10"?
如何才能做到这一点?

#include <stdio.h>
#define N 10

void main()
{
int a[N][N]={1},i,j,k=0,m,n;
printf("Enter n (n<N): \n");
scanf("%d",&n);
if (n%2==0) m=n/2;
else m=n/2+1;
for (i=0; i<m; i++)
{
for (j=i; j<n-i; j++)
{
k++;a[i][j]=k;
}
for (j=i+1; j<n-i; j++)
{
k++;a[j][n-i-1]=k;
}
for (j=n-i-2; j>=i; j--)
{
k++;a[n-i-1][j]=k;
}
for (j=n-i-2; j>=i+1; j--)
{
k++;a[j][i]=k;
}
}
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
}



[解决办法]
包含在" "里面的东西,如果没有转义或其它特殊规定,都会认为是字符串
[解决办法]
因为是字符串,不是变量~自动替换的只有变量~

热点排行