再算y,拿出相同颜色袜子的可能数量出错,应该怎么修改


#include<stdio.h>
int main()
{
    int n,m;//n为袜子的总数,m为判断的次数 
    int l,r;//询问袜子的区间 
    int a[1000];//用来存放袜子 
    int b[1000]={0};//用来存放重复字数的个数 
    int i,j,k,o,p,q,s;
    int x=0,y=0;//x为总的可能性,y为拿出相同数量袜子的可能性 
    int t=1;
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&a[i]);
    } 
    for(o=1;o<=m;o++)
    {
        scanf("%d%d",&l,&r);//读入区间 
        x=(r-l+1)*(r-l)/2;
        for(j=l;j<=r;j++)
        {
            for(k=l+1;k<=r;k++)
            {    if(a[j]==a[k])
                {
                    b[j]++; 
                    a[k]=0;//把a[k]置0 
                }
                else if(a[j]==0||a[k]==0)//如果啊a[j]或者a[k]为0,则跳过 
                continue;
            
            }    
        }
        for(p=l;p<=r;p++)
        {
            if(b[p]>0)
            {
                for(q=b[p]+1;q>=b[p];q--)
                {
                    t=t*q;
                }
                t=t/2;
                y=y+t; 
                t=0;
            }
            else
            continue;    
        }
        printf("%d/%d",y,x);
        x=0;y=0;
        for(s=l;s<=r;s++)//清空数组 
        b[s]=0;
        
    }
} 

img