首页 > 代码库 > 竖式问题——巧用字符数组
竖式问题——巧用字符数组
竖式问题
题目:
找出所有形如abc*de(三位数乘以两位数)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有竖式。每个竖式前应有编号,之后应有一个空行。最后输出解的总数。具体格式见样例输出(为了便于观察,竖式中的空格改用小数点显示,但你的程序应该输出空格,而非小数点)。
样例输入:
2357
样例输出:
<1>
..775
X..33
-----
.2325
2325.
-----
25575
The number of solutions = 1
1 #include<stdio.h>
2 #include<string.h>
3 int main()
4 {
5 char s[20],buf[99];//用于接受输入数字串
6 int a,b,c,Count = 0;
7 scanf("%s",s);//注意此处不需要取地址&
8 for(int i=111;i<=999;i++)//遍历所有的三位数
9 {
10 for(int j=11;j<=99;j++)//遍历所有的两位数
11 {
12 a = i*(j%10);//上面的乘数
13 b = i*(j/10);//下面的乘数
14 c = i*j;//结果
15 //进行是否满足要求的判断
16 sprintf(buf,"%d%d%d%d%d",i,j,a,b,c);//将整型数存入字符数组buf
17 //便于进行判断
18 int ok = 1;
19 for(int k=0;k<strlen(buf);k++)
20 if(strchr(s,buf[k])==NULL) ok = 0;
21 if(ok)
22 {
23 Count++;
24 printf("<%d>\n",Count);
25 printf("%5d\nx%4d\n-----\n%5d\n%4d\n-----\n%5d\n",i,j,a,b,c);
26 }
27 }
28 }
29 printf("The number of the solutions = %d",Count);
30 return 0;
31 }
说明:
- 在C语言中,字符串其实就是字符数组——可以像处理普通数组一样处理字符串,只需要注意输入输出和字符串函数的使用。
- strchr 在字符串中查找单个字符
函数原型:extern char *strchr(char *str,char character)
参数说明:str为一个字符串的指针,character为一个待查找字符。
所在库名:#include <string.h>
函数功能:从字符串str中寻找字符character第一次出现的位置。
返回说明:返回指向第一次出现字符character位置的指针,如果没找到则返回NULL。
3. printf输出到屏幕,fpringf输出到文件,sprintf输出到字符串
4. 字符串只能用strcpy(a,b),strcmp(a,b),strcat(a,b)来执行“赋值”、“比较”和“连接操作”,上述函数都在string.h中声明
竖式问题——巧用字符数组
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。