十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
如果你非要用指针的话,可以把数组的形式改写成指针的形式,就像一楼的
成都做网站、网站设计服务团队是一支充满着热情的团队,执着、敏锐、追求更好,是创新互联的标准与要求,同时竭诚为客户提供服务是我们的理念。创新互联把每个网站当做一个产品来开发,精雕细琢,追求一名工匠心中的细致,我们更用心!
void Chg_Array(int array[], int size, int value)
{
int i;
for(i=0;isize;i++)
*(array+i)=value ;
}
n = scanf("%d",n);
这一句有问题
1. scanf 函数是有返回值的,它的返回值可以分成三种情况
1) 正整数,表示正确输入参数的个数。
例如执行 scanf(“%d %d”, a, b);
如果用户输入”3 4”,可以正确输入,返回2(正确输入了两个变量);
如果用户输入”3,4”,可以正确输入a,无法输入b,返回1(正确输入了一个变量)。
2) 0,表示用户的输入不匹配,无法正确输入任何值。如上例,用户如果输入”,3 4”,返回0。
3) EOF,这是在 stdio.h 里面定义的常量(通常值为-1),表示输入流已经结束。在Windows下,用户按下CTRL+Z(会看到一个^Z字符)再按下回车(可能需要重复2次),就表示输入结束;Linux/Unix下使用CTRL+D表示输入结束。
你这个输入一个返回值就是1,因此n也会一直等于一
#include
stdio.h
f(int
a,int
b,int
m){
//这个函数是个完全没意思的函数
m=a*b;
return
;
//原因在这
这里直接return了
没指明返回哪个变量
那它的意义就只是说f函数结束了
其实什么也没返回
}
void
main(){
int
m=1;
//这里对m赋值1
f(2,3,m);
//运算是完全没意思的运算
所以最后结果是1
printf("%d",m);
}
为什么运行结果是m=1?????
//
在f函数那
return
m
就能得到你想要的
不过要把主函数里的倒数3行改成
m=f(2,3,m)