扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
#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;
}
#include "stdio.h"
int main()
{
int x[100],max,min,i,n;
printf("输入整数个数:");
scanf("%d",n);
printf("输入一组正整数:");
scanf("%d",x[0]);
max=0;min=0;
for(i=1;in;i++)
{
scanf("%d",x[i]);
if(x[max]x[i]) max=i;
if(x[min]x[i]) min=i;
}
printf("最大值是%d,下标(从0开始)%d\n最小值是%d,下标(从0开始)%d\n",x[max],max,x[min],min);
}
这题目有点意思,本人这两天研究了一下,针对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;
}
P1 默认应该是普通IO、输出方式
P1=XXX;向P1口输出数据
a++;实现自动加(二进制)
~a;可能外部是高电平拉高的LED,所以要给低才能点亮LED
这样的话,其中表示1的部分,转化为0,输出低电平,点亮LED;0的部分,转换为1,输出高电平,LED不点亮
P1=~a;将结果发送到P1口
uchar a;编译器默认初始化为0
循环起来,就是8个LED2进制点亮了。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流