c程序批改

来源:百度知道 编辑:UC知道 时间:2024/07/04 04:39:33
为什么输出都是0?
#include<stdio.h>
int main(void)
{
int a[10]={6,2,5,5,4,5,6,3,7,6};
int n,i,j,k,s=0;
scanf("%d",n);
if(n>12)
for(i=0;i<10;i++)
for(j=0;j<10;j++)
for(k=0;k<10;k++)
if(a[i]+a[j]+a[k]==n-4&&i+j==k)
s++;
printf("%d",s);
getch();
}

没有都输出为0阿
你的scanf("%d",n);---->scanf("%d",&n);

你说的算当输入的n<=12时的情况吧,
当输入n<=12,时,直接就到printf("%d",s); 了,所以结果为0了。
因为上面的三个for算三重循环,也只有n>12时才执行。
if(n>12)
for(i=0;i<10;i++)
for(j=0;j<10;j++)
for(k=0;k<10;k++)
if(a[i]+a[j]+a[k]==n-4&&i+j==k)
s++;
printf("%d",s);
这样你该理解了吧

我是别的的 C++不太了解
但你 for循环下面没有括号吗?
一下子3个for循环不会乱吗?
是不是应该
for(..;..;..)
{
for(..;..;..)
{
}
}