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

竖式问题

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

The number of solution = 1

分析

小学的乘法运算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#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。
1
2
3
4
5
6
7
8
9
10
#include<stdio.h>
#include<string.h>
int main()
{
char *s="666shansan";
char *p;
p = strchr(s,'s');
printf("%s",p);
return 0;
}

输出结果

shansan

 上一页

HTML

 评论


博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Material X 作为主题 , 总访问量为 次 。