c语言赋值套函数 c语言赋值语句

C语言中输入函数赋值?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也会一直等于一
C语言问题编写赋值函数#includestdio.h
#includestdlib.h
int assignment(int *,int);
void print(int *,int);
void main()
{
int sz,rt;
int *p;//定义一个指针c语言赋值套函数,在子函数里再动态分配内存
printf("输入datac语言赋值套函数的数据元素个数:");
scanf("%d",sz);
rt=assignment(p,sz);//调用赋值函数
printf("数组最后元素为:%d\n",rt);
}
int assignment(int data[],int size)//按 Fibonacci 数列对数组元素依次赋值
{
int res;
data=https://www.04ip.com/post/(int *)malloc(size*sizeof(int));
if(size==1)
data[0]=1;
else if(size==2)
{
data[0]=1;
data[1]=1;
}
else
{
data[0]=1;
data[1]=1;
for(int i=2;isize;i++)
data[i]=data[i-1]+data[i-2];
}
print(data,size);//调用打印函数
res=data[size-1];//最后一个元素是data[size-1]
free(data);//释放内存
return res;
}
void print(int data[],int size)//打印数组
{
for(int i=0;isize;i++)
printf("%d",data[i]);
}
有注释的,不明白的再讨论
什么是C语言库函数中的赋值语句?赋值语句是由赋值表达式再加上分号构成的表达式语句 。其一般形式为:变量=表达式;
赋值语句的功能和特点都与赋值表达式相同 。它是程序中使用最多的语句之一 。
1 由于在赋值符“=”右边的表达式也可以又是一个赋值表达式 , 
因此,下述形式
变量=(变量=表达式);
是成立的,从而形成嵌套的情形 。
其展开之后的一般形式为:
变量=变量=…=表达式;
例如:
a=b=c=d=e=5;
按照赋值运算符的右接合性,因此实际上等效于:
e=5;
d=e;
c=d;
b=c;
a=b;
注意在变量说明中给变量赋初值和赋值语句的区别 。
给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾 。例如:int a=5,b,c;
在变量说明中,不允许连续给多个变量赋初值 。
如下述说明是错误的:
int a=b=c=5
必须写为
【c语言赋值套函数 c语言赋值语句】int a=5,b=5,c=5;
而赋值语句允许连续赋值 。
注意赋值表达式和赋值语句的区别 。
赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方 , 而赋值语句则不能 。
下述语句是合法的:
if((x=y+5)0) z=x;
语句的功能是 , 若表达式x=y+5大于0则z=x 。
下述语句是非法的:
if((x=y+5;)0) z=x;
因为x=y+5;是语句,不能出现在表达式中
c语言如何调用自定义的赋值函数在使用一个函数之前必须先对他进行声明:

推荐阅读