关于C语言编程过程中遇到的问题?

来源:百度知道 编辑:UC知道 时间:2024/05/11 19:52:08
我想实现一个主函数调用 INT SHUCHU(INT A,INT B)函数
SHUCHU 函数中间用了printf输出了一个表达式
可是主函数的参数在js在调用前赋值为0,在每次函数调用前执行JS=JS+1的操作,可是执行了函数调用之后,JS的值变为了254,
我调用过程是这样的:
SHUCHU(A,B)
不知道这是为什么啊?是不是我的调用过程不对啊??
哦,行,我马上贴出来,但是估计不是变量的问题,也不是什么堆栈的问题了!我猜应该是函数调用出现问题了!由于粘贴不下,我删除了定义变量和函数的部分.但是其中没有用到变量js,有空了加我QQ,查看全部代码!
#include<stdio.h>
char xianshi[3]; /*定义一个存放符号的数组*/
int jisuan/*完成对a,b之间的i运算*/
int shuch(int a,int b,int c,int d) /*完成对四个数字的运算,并且把结果输出*/
{shuchu[0]=a;shuchu[1]=b;shuchu[2]=c;shuchu[3]=d;
for(i=0;i<=3;i++)
{zhongjian1=jisuan(i,shuchu[0],shuchu[1]);
for( j=0;j<=3;j++)
{zhongjian2=jisuan(j,zhongjian1,shuchu[2]);
for(k=0;k<=3;k++)
{zhongjian3=jisuan(k,zhongjian2,shuchu[3]);
printf("%d %c %d %c %d %c %d=%f\n",shuchu[0],xianshi[i],shuchu[1],xianshi

[j],shuchu[2],xianshi[k],shuchu[3],zhongjian3);}}

#include<stdio.h>
char xianshi[4] = {'+','-','*','/'}; /*定义一个存放符号的数组*/
float jisuan(int i, float a, float b)/*完成对a,b之间的i运算*/
{
switch(i)
{
case 0: return a+b;
case 1: return a-b;
case 2: return a*b;
case 3: return a/b;//此处b不为0的情况未处理
}
}
int shuch(int a,int b,int c,int d) /*完成对四个数字的运算,并且把结果输出*/
{
int i,j,k,shuchu[4],zhongjian1,zhongjian2;
double zhongjian3;
shuchu[0]=a;shuchu[1]=b;shuchu[2]=c;shuchu[3]=d;
for(i=0;i<=3;i++)
{
zhongjian1=jisuan(i,shuchu[0],shuchu[1]);
for(j=0;j<=3;j++)
{
zhongjian2=jisuan(j,zhongjian1,shuchu[2]);
for(k=0;k<=3;k++)
{
zhongjian3=jisuan(k,zhongjian2,shuchu[3]);
printf("%d %c %d %c %d %c %d=%f\n",shuchu[0],xianshi[i],shuchu[1],xianshi[j],
shuchu[2],xianshi[k],shuchu[3],zhongjian3);
}
}
}