qhnw.net
当前位置:首页 >> #DEFinE M 4 #DEFinE N 3 #inCluDE<stDio.h> vo... >>

#DEFinE M 4 #DEFinE N 3 #inCluDE<stDio.h> vo...

#include<stdio.h>#define M 4 #define N (2*M+1) #define K (N/2-5) void main() { printf("%d\n",K); }

你这样的结果是:NN=N*N/2=M+1*M+1/2=3+1*3+1/2=3+3+0=6 define只是简单替换 想达到你要的效果,需要加上() 也就是# define M 3 # define N (M+1) # define NN N*N/2 这样:NN=N*N/2=(M+1) *(M+1) /2=(3+1)*(3+1)/2=4*4/2=8 或者# define M 3 # define N M+1# define NN (N)*(N)/2 NN=(N)*(N/)2=(M+1) *(M+1) /2=(3+1)*(3+1)/2=(4)*(4)/2=8 使用define的时候要注意(),这是很重要的

代码请发全,估计问题是#define引起的因为#define只是在编译的时候,将后面的代码代替前面的代码,比如M*N 结果:3*M+1

M=3N=M*2+1=7 S(x)=x*x主函数输出S(49)/S(49) //是S(M)/S(N)吧结果是1

你的程序我是真的没看懂,不知道那是开始,哪是结束,最好养成良好的编程习惯,这是我根据你的程序改的#include #define n 10void main(){ int i,a[n],max,min; printf("please input numbers:\n"); for(i=0;imax) max=a[i]; if(a[i] 评论0 0 0

n=&j;"不能得出正确结果而“*n=j;"就能呢 程序看不全,不过这句我可以给你分析下 首先n是指针,一般用来存放变量地址 n=&j意思是把变量j的地址放在指针n中,此时*n=j,但是如果你直接用 *n=j意思则是把变量j的值放在指针n中,那么按这个地址找到的变量值就不是j了,还有n按地址返回,可以修改返回值的,我不知道你后面的程序是什么

#include&lt;stdio.h&gt;#define H 3 /*允许保存学生信息数*/#define pr printf#define s scanfmain(){ int i, n[4], m, x, max;pr("请输入%d个学生的信息\n\n",H);for(i=1;i&lt;H+1;i++){pr("\n\n第%d个学生的信息:\n\n 学 号:",i);s("%d",&amp;

struct; *head; //这里有问题 不能这样定义 可以改为struct node *head;struct *p; //struct node*p;

就你给的这些来看,首先,宏定义中的m和n最好改成大写的M和N,然后是数组及变量在定义是最好初始化,而且数组和变量最好分开定义.

你打印输出的时候i和j的循环也有问题,不知道你是要原样输出还是转置输出.下面是转置输出的代码.此外使用double不是不可以,但接受输入就需要用%lf了.include <stdio.h>int main(void){ #define M 3 #define N 3 double x[M][N]; int i=0,j=0;

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.qhnw.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com