#include <stdio.h>
int main()
{
int dm, zm, xm;
for (dm = 0; dm <= 100; dm++)
for (zm = 0; zm <= 100; zm++)
for (xm = 0; xm <= 100; xm += 2)
if (dm*3+zm*2+xm/2==100 && dm+zm+xm==100)
printf("%d %d %d\n", dm, zm, xm);
return 0;
}
输出为:
2 30 68
5 25 70
8 20 72
11 15 74
14 10 76
17 5 78
20 0 80
(如果要求三种马都必须有,那么去掉最后一条)
#include<stdio.h>
void main() {
int i, j;
for (i=0;i<34;i++)//大马
for (j=0;j<(100-i*3)/2+1;j++)//中马
if ((100-i-j)%2==0 && 3*i+2*j+(100-i-j)/2 ==100)
printf("%d\t%d\t%d\n",i,j,100-i-j); //输出所有可能
}
void f (int * p)//这里上面说过了,变量名是i,但是类型是int *,可以保存其他变量的地址。
{
*p=100;//上面也说过,*p就是i,i就是*p
}
int main()
{
int i=9;//这是一个普通的定义和赋值
f(&i);//这里要是调用函数,用&i,把i的地址传递给函数的参数p
cout<<"i"<<i;//结果应该是100
return 0;
}