函数func()作用就是传入两个参数,打印出两个参数的和并返回结果。
主函数中调用了一次func(),传入的参数为x,以及x+2,其中x=6,故传入数据为6和8,所以r=func(6,8)=14,所以结果就是打印出14
你这个程序是错误的。看样子你是想输入两个数,然后输出这两个数的运算结果。但是在计算结果的保存上有问题。你的变量i和z被定义成指针变量,这表示他们要指向一个内存地址。但是,在C语言中,内存地址只能以i=&x,这样的形式给出,而不能直接赋值。所以,程序到这里就错了。改成这样就好了:
#include <stdioh>
main()
{
int x,y,z,i;
printf ("Please enter two numbers:\n");
scanf ("%d%d",&x,&y);
i = x10+y;
printf ("The numbers i=%d\n",i);
z = i-(x+y);
printf ("The numbers z=%d\n",z);
}
首先我认为这个流程图是你自己画的,因为很不规范。
我理解的运算顺序是:输入的数据减去1,然后除以负2,最后与0比较大小,大于0则输出结果,小于零则返回,要求重新输入数据。大于0所用的框应该是菱形吧?!
你根据这个算结果吧。当然,如果我错误的理解了你的意思,那么就不好意思了!~
见谅……
1这个程序的含义:
a[4][4]是一个4行4列的数组:
1
2
-3
-4
0
-12
-13
14
-21
23
0
-24
-31
32
-33
0
for(i=0;i<4;i++)//第一层循环
{for(j=0;j<4;j++)//第二层循环
{if(a[i][j]<0)
continue;
if(a[i][j]==0)
break;
s+=a[i][j];}
是一个双重循环。
程序执行过程:
在程序执行过程中,循环体是这样执行的。
i=0时,j从0变化到3(因为第一行没有0),遇到小于零的数,执行continue,也就是跳过这个数,不把这个数累加到s上,遇到大于零的数,执行s+=a[i][j];这个语句把大于零的数累加到s上。s+=a[i][j];}相当于s=s+a[i][j];。比如,本来s为0,执行循环体时,a[0][0]=1,是个大于零的数,所以把s+a[0][0]的值(也就是1)赋给s,这样s的值就变为1了。然后i的值不变,j的值增加到1,因为j仍小于4所以继续执行循环体。因为a[0][1]的值为2,大于零,所以执行s+=a[i][j];,即把2和s刚才的值1相加得3,赋给s。这样s的值变为3。然后,i
的值仍不变(为0),j的值增加到2,仍满足小于4条件,而a[0][2]等于-3,所以执行continue语句,也就是跳过这个数,即不把这个数累加到s上。然后j的值增加为3,仍满足小于4的条件,但a[0][3]小于零,所以也跳过这个数。接着j的值增加为4,不再满足小于4的条件,所以,i的值增加1变为1,j继续从0开始递增。
i=1时,j从0开始增加,但a[1][0]=0,所以执行break语句,也就是说这次,直接跳过第二层循环,i的值直接变到2。接下来的 *** 作将是针对数组的第三行元素(行坐标i=2)。
i=2时,j的值仍旧从0开始递增。跳过-21,把23累加到s上。然后由于又遇到了0,i的值再累加1,变为3
i=3,j的值仍旧从0开始递增,跳过-31,把32累加到s上,跳过-33,然后遇到了0,执行break语句,j的值不再增加。i的值变为4
i的值变为4时,不再满足小于4这个条件。程序的循环部分结束。
整个程序就是把每行中0之前的整数累加到s上。
结果:1+2+23+32=58
2C++中的输入输出符号“<<”,“>>”是在输入法为英文状态下连输两个小于号,大于号。你的理解正确。
以上就是关于C语言,程序运算结果...怎么算啊a,b的值怎么得全部的内容,包括:C语言,程序运算结果...怎么算啊a,b的值怎么得、C,我这程序是怎么运算的、一个计算机中的计算程序,你能理解它的运算顺序吗根据它的程序,请你写出所有运算步骤等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)