一个题目以及自己写的程序,求指导一下。
描述有n个正整数,找出其中和为t(t也是正整数)的可能的组合方式。如:
n=5,5个数分别为1,2,3,4,5,t=5;
那么可能的组合有5=1+4和5=2+3和5=5三种组合方式。
输入
输入的第一行是两个正整数n和t,用空格隔开,其中1<=n<=20,表示正整数的个数,t为要求的和(1<=t<=1000)
接下来的一行是n个正整数,用空格隔开。
输出
和为t的不同的组合方式的数目。
#include<stdio.h>
#include <math.h>
int main()
{
int n,i,j,s,t;
s=0;
printf("请输入数字个数以及所需要的和\n");
scanf("%d,%d",&n,&t);
int a[n];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
if (t==a[i])
s=s++;
}
for(i=0;i<n;i++)
{
j=i+1,
for(;j<n;j++)
{
if(a[i]+a[j]==t)
s=s++;
}
}
printf("%d",s);
return 0;
}
编译错误,不知道怎么修改。
[ 本帖最后由 真想学C 于 2014-4-25 21:21 编辑 ]