原型:extern void *memset(void *buffer, int c, int count)
用法:#include <string.h>
功能:把buffer所指内存区域的前count个字节设置成字符c。
说明:返回指向buffer的指针。
举例:
// memset.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="Golden Global View"
clrscr()
memset(s,'G',6)
printf("%s",s)
getchar()
return 0
}
相关函数:bzero,setmem,strset
二元组是用来表示一维数组的(数组数据稀疏是可以节省空间)。二元组一般写成m[x][2]。x表示一维数组的长度,2是指二元即这个用于表示一维数组的二维数组只有两列。二元组的本质是二元数组,用途是更节省空间的表示一维数组。
例如一个一维数组a[10]其内容为0 0 1 0 4 0 0 0 9 0 这样10个元素分别放在a[0]~a[9]中。看这个数组中到多是0,那么我们可以这样想:我记录非零位置的位置号和数组值,零的可以不记录,那么用二元组来存就是三个元素而已:2,1 4,4 8,9,这个二元组的意思是a[2]中是1 a[4]中是4 a[8]中是9 其他位置都是零。可以看出二元组其实就是固定为两列的行的一个二维数组。用这个二维数组的第一列表示一维数组a[x]的x,用第二列表示一维数组a[x]的值。
引自:
http://zhidao.baidu.com/link?url=hynvCxLCTH6mtaGImGtjEErlAjon9gG70g5Dsttoh1oosOIjFXX-mP9cS5WFMOM1BQq3orIiPhxzX4_9Xl8E7K
#include<stdio.h>int main(int argc,char **argv)
{
int a[20]
int inputnum=0,i,j
int min_num
int flag=0
int rtn=0
printf("你想求几个数的公约数?\n")
scanf("%d",&inputnum)
if(inputnum<2 || inputnum >20)
{
printf("数的个数应大于2个小于20个!\n")
return 0
}
printf("input %d numbers:\n",inputnum)
/*for(i=0i<inputnumi++)
{
printf("now,input the %d number:",i+1)
scanf("%d",&a[i])
}*/
for(i=0i<inputnumi++)
{
scanf("%d",&a[i])
printf("a[%d]=%d\n",i,a[i])
}
min_num=a[0]
for(i=0i<inputnumi++)
{
if(min_num>a[i])
{
min_num=a[i] //找到最小的数
}
}
for(i=1i<=min_numi++)
{
for(j=0j<inputnumj++)
{
if(a[j] % i==0)
{flag++}
}
if(flag==inputnum)
{
rtn=i
}
flag=0
}
printf("最大公约数是:%d\n",rtn)
return 0
}
测试过了,没什么问题。望采纳。