竖式问题


字符串处理函数strchr() && 竖式问题

竖式问题

题目描述
找出所有形如abc*de(三位数乘两位数)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。
输入:
输入一个数字集合(相邻数字之间没有空格)
输出:
输出所有竖式.每个竖式前应该编号,之后应该有一个空行。最后输出解的总数。
样例输入:
2357
样例输出:
(1)
  775
x  33
—–
 2325
2325 
—–
25575

The number of solution = 1

分析

小学的乘法运算

#include<stdio.h>
#include<string.h> 
int main()
{
    int count;
    char s[20],buf[99];
    scanf("%s",s);
    for(int abc = 111;abc <= 999;abc++)
    {
        for(int de = 11;de <= 99;de++)
        {
            int x = abc*(de%10),y = abc*(de/10),z = abc*de;
            sprintf(buf,"%d%d%d%d%d",abc,de,x,y,z);
            /*
            - 使用sprintf()把信息输出到字符串 
            - strchr()函数的作用是在一个字符串中查找单个字符 
            */
            int ok = 1;
            for(int i = 0;i<strlen(buf);i++)
            {
                if(strchr(s,buf[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;
}

字符处理函数strchr()

strchr() 用来查找某字符在字符串中首次出现的位置,其原型为:
char * strchr (const char *str, int c);

  • strchr() 将会找出 str 字符串中第一次出现的字符 c 的地址,然后将该地址返回。
  • 如果找到指定的字符则返回该字符所在地址,否则返回 NULL。
#include<stdio.h>
#include<string.h>
int main()
{
    char *s="666shansan";
    char *p;
    p = strchr(s,'s');
    printf("%s",p);
    return 0;
} 

输出结果

shansan


文章作者: ShanSan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ShanSan !
 上一篇
HTML试水 HTML试水
一级标题 二级标题 倚天屠龙记张无忌这是另一段 锚点这是我的个人博客这是我的个人博客,新标签页打开 邮箱联系我 图像** img是自关标记,不需要结束标记 ** 文本这里是粗体 这里是斜体 what 这里还是斜体 插入字体,
2018-10-30
下一篇 
坑人的C++-2 坑人的C++-2
C++文件和流在C++中进行文件处理,可使用标准库fstream 它定义了三个新的数据类型,用于从文件写入流和从文件读取流 数据类型 描述 ofstream 该数据类型表示输出文件流,用于创建文件并向文件中写入信息 ifst
2018-10-22
  目录