找出所有形如abc*bc(三位数乘二位数)的算式,使得在完整的竖式中, 所有数字都属于一个特定的数字集合。输入数字集合, 输出所有竖式,每个数字前应该有编号,最后输出解的总数 如 输入2357 输出 <1> 775 X 33 ----- 2325 2325 ----- 25575 The number of solutions = 1
//竖式问题 #include#include int main() { char num[20],buf[100]; int i,j,count=0,z; scanf("%s",num); //注意这里num前面没有& !!!!!! for(i=100;i<=999;i++) { for(j=10;j<=99;j++) { int sum_1=i*(j%10);int sum_2=i*(j/10);int sum=j*i; sprintf(buf,"%d%d%d%d%d",i,j,sum_1,sum_2,sum); int ok=1; for(z=0;z n",++count); printf("%5dnX%4dn-----n%5dn%-5dn-----n%dnn",i,j,sum_1,sum_2,sum); } } } printf("The number of solutions = %dn",count); return 0; }
这里值得注意的是使用%s时 不用使用& !!!因为字符数组本身就是地址!!!
这里使用了spring函数,这个函数的主要作用是将一些变量的值导入一个数组中
我们还使用了strchr()函数,这个函数原型为char* strchr(const char* str, int c);
其中
- str:被查找的字符串
- c:要查找的字符
strchr() 函数会依次检索字符串 str 中的每一个字符,直到遇见字符 c,或者到达字符串末尾(遇见 )。
与此同时,配合strchr()函数,我们还使用了变量ok作为记号变量~~~~~~~~



