
正文
c语言求组函数 c语言求一组数的个数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言定义一个求数组n个元素的和的函数
#includestdio.h
int sum_arry(int *p,int n)
{
int i = 0,sum = 0;
for(i=0;in;i++)
{
sum += *(p+i);
}
return sum;
}
int main(void)
{
int a[20];
int i = 0;
printf("请输入20个数字:\n");
for(i=0;i20;i++)
scanf("%d",a[i]);
printf("a[0]到a[5]的和为:%d\n",sum_arry(a[0],6));
printf("a[3]到a[8]的和为:%d\n",sum_arry(a[3],6));
return 0;
}
相关问答
Q1: 求C语言组合函数
这题目有点意思c语言求组函数,本人这两天研究了一下c语言求组函数,针对char类型写了一个小程序,测试成功。大概思路是这样的:要做Cmn的组合,可以用一个有n个元素的指针数组,数组中的元素分别指向给定集合中的n个元素,每次取出这些指针所指的值,再按照一定的规律移动指针,如此循环直至结束。下面附上函数源代码及注释,希望对你有所帮助,至于char以外的其它集合,你也不妨试着写写。
void fun(char *strSrc,char *strDes,int n) //strSrc是源数组,strDes是目标数组,n为要选取的个数
{
int i,j,k,len,flag;
char **pp;
char *pSrc,*pDes;
flag=0;
len=strlen(strSrc);
if(nlen)
return;
pSrc=strSrc;
pDes=strDes;
pp=new char*[n];
for(i=0;in;i++) //初始时n个指针分别指向前n个数据
pp[i]=pSrc++;
while(1)
{
for(i=0;in;i++) //取当前组合数据赋给目标字符串
*pDes++=*pp[i];
*pDes++=' '; //为了看上去方便而加的分隔符
if(flag==1) //若完成则退出
{
*pDes='\0';
break;
}
if( *(pp[n-1]+1)!='\0' ) //若一组中最后一个指针还没有指向源字符串中最后一个数据
pp[n-1]++;
else
{
for(j=n-1;j0;j--) //从后往前寻找应该移动的指针
{
if(pp[j-1]+1!=pp[j]) //找到指针pp[j-1]
{
//如果该指针为第一个,并且与第二个只隔一个位置,说明下一组为最后一组
if((j-1==0)(pp[j-1]+2==pp[j]))
{
pp[j-1]++;
flag = 1;
}
else //否则将找到的指针及其后面的所有指针移动到新位置
{
pp[j-1]++;
for(k=j;kn;k++)
pp[k] = pp[k-1]+1;
}
break;
}
}
}
}
for(i=0;in;i++)
pp[i]=NULL;
delete []pp;
}
Q2: 单片机 c语言 求组函数部分P1=~a的解释
P1 默认应该是普通IO、输出方式
P1=XXX;向P1口输出数据
a++;实现自动加(二进制)
~a;可能外部是高电平拉高c语言求组函数的LEDc语言求组函数,所以要给低才能点亮LED
这样的话c语言求组函数,其中表示1的部分c语言求组函数,转化为0,输出低电平,点亮LEDc语言求组函数;0的部分,转换为1,输出高电平,LED不点亮
P1=~a;将结果发送到P1口
uchar a;编译器默认初始化为0
循环起来,就是8个LED2进制点亮了。
关于c语言求组函数和c语言求一组数的个数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






