十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
定义一个长度是5的字符字符指针的数组。
创新互联建站于2013年创立,是专业互联网技术服务公司,拥有项目网站制作、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元赫章做网站,已为上家服务,为赫章各地企业和个人服务,联系电话:18980820575
也就是数组alpha的每一个元素都是一个字符的指针(char *).
如下:
char a[10];
char * alpha[5];
alpha[0] = a; //将数组a的地址赋值给字符指针alpha[0].
#include stdio.h
#include string.h
#include ctype.h // isalpha=alpha
int longest(char[]); //函数声明,我习惯放在main函数前面
int main()
{
int i; //循环变量
char strl[100]; //存储输入的整个字符串
printf("input string:\n"); //提示输入
fgets(strl,100,stdin); //输入字符串
printf("longest string is:\n"); //结果输出提示
for(i=longest(strl);isalpha(strl[i]);i++) //i存放的是最长"单词"的起始下标,isalpha是C库函数,
printf("%c",strl[i]); //跟先前代码中的alpha函数功能一样,判断参数是否是
//大小写字母;循环的功能就是从i下标开始输出,直到非
//字母时停止,即输出了i下标开始的单词
getchar(); //本人没有装ncurses库,所以只能使用getchar装装B,getch的功能无非是想程序输出结果后暂停下来
return 0;
}
int longest(char string[])
{
int len=0; //临时存储"单词"的长度
int i;
int length=0; //存储当前最长的"单词"的长度
int flag=1; //"单词"开始/结束的标志,1表示单词结束
int place=0; //当前最长"单词"的开始下标
int point; //"单词"的开始下标
for(i=0;i=strlen(string);i++)
if(isalpha(string[i])) //如果是大小写字母
{
if(flag) //"单词"结束了,而当前字符又是字母,说明新的"单词"开始了
{
point=i; //记下新"单词"开始的位置
flag=0; //改下标记,"单词"已经开始了
}
else len++; //长度加一,貌似应该去掉else
}
else //如果不是大小写字母
{
flag=1; //当前字符不是字母,说明"单词"结束了,作个标记
if(len=length) //如果上一个结束的"单词"的长度是目前最长的,则
{
length=len; //记下其长度
place=point; //记下其开始位置
len=0; //长度置为0,重新计算,好大一只臭虫....嘎嘎,len=0应该移到括号外面
}
}
return(place);
}
用相除求余,可以得到每一位数,再把得到的每一位数相乘,得到新数字,再用相除求余,如此反复直到得到的数是个位数就好了
两个while循环可以搞定,或者用楼上的递归算法
1、C语言编程中Alpha通道是一个8位的灰度通道,该通道用256级灰度来记录图像中的透明度信息,定义透明、不透明和半透明区域,其中黑表示透明,白表示不透明,灰表示半透明。
2、阿尔法通道(Alpha
Channel)是指一张图片的透明和半透明度。例如:一个使用16位存储的图片,可能5位表示红色,5位表示绿色,5位表示蓝色,1位是阿尔法。在这种情况下,它要么表示透明要么不是。一个使用32位存储的图片,每8位表示红绿蓝,和阿尔法通道。在这种情况下,就不光可以表示透明还是不透明,阿尔法通道还可以表示256级的半透明度。