用c编写一个程序,从0-999的一千个数中选择符合一些条件(如百位与十位和为)9的数,并输出!

来源:百度知道 编辑:UC知道 时间:2024/05/25 04:57:51
谢谢大家的热心回答,如果有多个条件呢,如百个和为9,百十和为14等等,另外,如果上边的条件中的数不固定,我每次都想输入一个值,怎么实现?

#include <stdio.h>
#include <stdlib.h>

bool isok(int num)
{
int bai = (num %1000)/100;
int shi = (num %100)/10;
if(bai + shi == 9) return true;
return false;
}

void putout(bool (*p)(int))
{
for(int i=0; i<1000; ++i)
if(p(i)) printf("%d,",i);
}

void main()
{
putout(isok);

}

补充:
>>如果有多个条件呢,如百个和为9,百十和为14等等
在我的代码中,只要修改isok函数,如:
bool isok(int num)
{
int bai = (num %1000)/100;
int shi = (num %100)/10;
if(bai + shi == 9) return true;
if(bai + shi == 14) return true; //添加的
return false;
}

>>如果上边的条件中的数不固定,我每次都想输入一个值,怎么实现?
可以修改putout函数:

void putout(bool (*p)(int))
{
int i;
printf("input a number:");
while(cin>>i)
{
if(i<0) break; //负数则退出
if(p(i)) printf("%d is a good number!\n",i);