题面(右边是自己写的没通过的代码)
编写一个程序,确定满足以下条件的三个整数的组合数:
您应该从1到n中选择三个不同的整数。
三个整数的总和是x。
例如,n=5和x=9有两种组合。
1 + 3 + 5 = 9
2 + 3 + 4 = 9
验证过了,这个写法是正确的。
#include<stdio.h>
int main(){
int n,x,i,j,num=0;
while(scanf("%d %d",&n,&x)!=EOF){
if(n==0&&x==0)break;
num=0;
for(i=n;i>x/3;i--){
for(j=1;j<=(x-i)/2;j++){
if(j!=x-i-j&&x-i-j<i)num++;
}
}
printf("%d\n",num);
}
return 0;
}
这个就是循环的嵌套使用,用三个循环进行循环,然后满足条件的输出就可以了。大概思路就是这样,可以自己去尝试尝试,如果还是不会的话,可以再问我
#include<stdio.h>
int main()
{
int i = 0,j,k,n,x,cnt=0;
while (scanf_s("%d %d", &n, &x)!=EOF&&(n!=0||x!=0))
{
for (i = 1; i <= n; i++)
for (j = i + 1; j <= n; j++)
for (k = j + 1; k <= n; k++)
if (i + j + k == x)
cnt++;
printf("%d\n", cnt);
}
return 0;
}