编写函数fun,其功能是将所有满足如下条件的四位整数存放到形参数组a中:
编写函数fun,其功能是将所有满足如下条件的四位整数存放到形参数组a中:
将四位整数的千位和十位构成一个两位数s,将百位和个位构成另一个两位数t,注意,这里不考虑两位数十位为0的特殊情况,即不将01,02,03等视为两位数.如果s是t的5倍,则将此四位数存放到形参数组a中.
例如:对于整数6102,按照上述要求组成的两个两位数分别为60和12,而60=12*5,因此6102满足条件,将其存放到数组a中,存放到数组a中的整数的个数作为函数值返回.
(2)编写函数main,在main函数中调用fun函数,并将数组a中存放的整数按一行5个输出到屏幕上.
# include
int fun(int *a)
{
int i,j=0,qw,bw,sw,gw,s,t;
for(i=1000;i
# include <stdio.h>
int fun(int *a)
{
int i,j=0,qw,bw,sw,gw,s,t;
for(i=1000;i<=9999;i++)//遍历所有四位数
{
qw=i/1000;
bw=i/100%10;
sw=i/10%10;
gw=i%10;
//求个位、十位、百位、千位
/*做法:6125为例
6125/1000=6.125,转化为int只取整数6,
6125/100=61.25,61.25%10=1.25,只取1
其余同上
*/
s=qw*10+sw;
t=bw*10+gw;
//千位和十位构成(千位*10+十位)一个两位数s,将百位和个位构成另一个两位数t
if( (s==5*t) //s是t的5倍
&&(bw!=0) //排除两位数十位为0的特殊情况
)
{
a[j]=i;
j++;
//把i存放到数组a中
}
}
return j;//返回个数
}
void main()
{
int a[100],i,j;
j=fun(a);//计算
for(i=0;i<j;i++)
{
printf("%6d",a[i]);//%6d(长度为六的整数)包括了两个空格
if((i+1)%5==0)//五个分一行(输出\n)
printf("\n");
}
}if((i+1)%5==0).这里的i为什么要加1呢
列举说明:(序号表示输出第几个数)
i是0,输出,(i+1)%5不等于0
i是1,输出,(i+1)%5不等于0
i是2,输出,(i+1)%5不等于0
i是3,输出,(i+1)%5不等于0
-
i是4,输出,(i+1)%5等于0,换行(此时是第五个数了)
……