有谐音特点的对联:C语言编程, 带注释

来源:百度文库 编辑:高校问答 时间:2024/04/27 16:46:01
有一个整型数组,里面存储10个整型数据(要做判断只输入4位数,不符合的不纳入数组中)
要求:个位数上的减千位数上的减百位数上的数减十位数上的数大于零的个数cnt,再把所有满度条件的四位数平均值pjz1,以及不满足条件的四位数的平均值pjz2,最后输出所得到的结果。

#include <stdio.h>

/*输入十个数*/
int enter(int * arr)
{
int i;

printf("输入10个四位正整数:\n");
for(i=0;i<10;)
{
printf("输入第[%d]个数=",i+1);
scanf("%d",&arr[i]);
if( arr[i]>=1000 && arr[i]<=9999)
{
i++;
}
}

return 0;
}

/*判断一个四为数是否满足条件
*满足则返回1
*不满足则返回0
*/
int test(int number)
{
int gw=0,sw=0,bw=0,qw=0;

gw=number%10;/*取得个位*/
sw=(number%100)/10;/*取得十位*/
bw=(number%1000)/100;/*取得百位*/
qw=number/1000;/*取得千位*/

printf("数:[%d]中..千位:[%d],百位:[%d],十位:[%d],个位:[%d]\n",number,qw,bw,sw,gw);

if( (gw-qw-bw-sw)>0 )
{
return 1;
}

return 0;
}

int main(void)
{
int array[10];
int i;
int pjz1=0,gs1=0;/*保存平均值1和个数*/
int pjz2=0,gs2=0;/*保存平均值2和个数*/

enter(array);

for(i=0;i<10;i++)
{
if(test(array[i])==1)
{
pjz1+=array[i];
gs1++;
}
else
{
pjz2+=array[i];
gs2++;
}
}

if(gs1!=0)
{
pjz1=pjz1/gs1;
}
if(gs2!=0)
{
pjz2=pjz2/gs2;
}

printf("满足条件的个数cnt=[%d]\n",gs1);
printf("满足条件的平均值为:[%d]\n",pjz1);
printf("不满足条件的个数为:[%d]\n",gs2);
printf("不满足条件的平均值为:[%d]\n",pjz2);

return 0;
}