竖式问题





#include <stdio.h>   
#include <string.h>   
   
int main()   
{   
 	int abc, de, x, y, z, i, ok, count = 0;   
 	char s[20], buff[100];   
  	scanf("%s", s);   
   
  	for (abc = 111; abc < 999; abc++)   
  	{   
  		 for (de = 11; de < 99; de++)   
 	 	{   
  			x = abc * (de % 10);   
  			y = abc * (de / 10);   
  			z = abc * de;
		  	
  			sprintf(buff, "%d%d%d%d%d", abc, de, x, y, z);   //把这五个数字作为字符放入buff数组中 ,连接为一条字符串 
  	   		ok = 1; 
  	    
  			for (i = 0; i < strlen(buff); i++)   
  				if (strchr(s, buff[i]) == NULL)   
  					ok = 0;
				   
  			if (ok)   
  			{   
  	 			printf("<%d>\n", ++count);   
  				printf("%5d\nX%4d\n-----\n%5d\n%4d\n-----\n%5d\n\n", abc, de, x, y, z);   
  			}   
 	 	}
		     
  	}
	     
  	printf("The number of solutions = %d\n", count);   
  	return 0;   
}

	/*
  		函数功能:把格式化的数据写入某个字符串
		函数原型:int sprintf( char *buffer, const char *format [, argument] … );
		返回值:字符串长度(strlen)

		例子:
		char* who = "I";
		char* whom = "CSDN";
		sprintf(s, "%s love %s.", who, whom); //产生:"I love CSDN. "  这字符串写到s中
		
  		strchr函数原型:
		char * strchr(char * str, int ch); 
		功能就是找出在字符串str中第一次出项字符ch的位置,
		找到就返回该字符位置的指针(也就是返回该字符在字符串中的地址的位置),
		找不到就返回空指针(就是 null)。
  		
  		*/








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值