求高手解决一程序题目,不胜感觉 愿意以高分求解。

来源:百度知道 编辑:UC知道 时间:2024/06/06 04:43:24
求1~999中
除去两位相同的号码,10个。如 35 33 66 73 14 40 22 35 45 68 这十种情况。也就是说35* 33*(三位数中带35 33两个的都不要)
除去两个和值尾数,如6和9 也就是说三位数加起来等于6 9 16 19 26的都不要。
除去一个不要的 如4 就是说三位数中包含4的都不要。4** **4 *4*
最后一个条件
除去最大的数减去最小的数等于我输入的数的值。如我输入的是9
则 则 09不能存在 是8的话 80 19不存在。
我曾经写过的程序, 参考 组三是有两个相同的数,组六是没有相同的数字。胆码是必须有的数字,杀码是不要存在的数字,
#include "stdio.h"
#include "stdlib.h"
void main()
{
int a,b,c,d,k,e,f,g,i,s;
///////////////////////////////////////////////////
int aa[500];
int j,m,e1,f1,g1;
///////////////////////////////////////////////////
printf("输入胆码\n");
scanf("%d",&a);
printf("输入两杀码\n");
scanf("%d%d",&b,&c);
printf("输入奇偶 0或1\n");
scanf("%d",&d);
printf("形态为组三3还是组六6还是默认0\n");
scanf("%d",&k);

#include "stdio.h"
#include "stdlib.h"

#define max(a, b) a > b ? (a) : (b)
#define min(a, b) a < b ? (a) : (b)

int FirPCnt = 0;
int SecPCnt = 0;
int MidPCnt = 0;
int ThrPCnt = 0;
int ForPCnt = 0;

///Case : One
int * GetCaseOneNum(int OutTwoNum[10])
{
//110-999
int *OutThrNum = NULL;
OutThrNum = (int *)malloc(999*sizeof(int));

if(OutThrNum == NULL)
{
printf("Memory-1 Failed!\n");
exit(0);
}

for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
if (j != 0)
{
*(OutThrNum) = OutTwoNum[i] + j*100;
OutThrNum ++;
FirPCnt++;
}
*(OutThrNum) = OutTwoNum[i]*10 + j;
OutThrNum++;
FirPCnt++;
}
}
OutThrNum -= FirPCnt;
return OutThrNum;
}

///Case