C语言,程序运算结果...怎么算啊a,b的值怎么得

C语言,程序运算结果...怎么算啊a,b的值怎么得,第1张

函数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,我这程序是怎么运算的、一个计算机中的计算程序,你能理解它的运算顺序吗根据它的程序,请你写出所有运算步骤等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10109820.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存