Hello, OnlineGDB Q&A section lets you put your programming query to fellow community users. Asking a solution for whole assignment is strictly not allowed. You may ask for help where you are stuck. Try to add as much information as possible so that fellow users can know about your problem statement easily.

PLZ explain step by step this program

0 votes
asked Apr 29, 2018 by anonymous
#include<stdio.h>

#include<conio.h>

int actoutput(int a1,int b1, int c1)

{

int v;

if(a1>=(b1+c1)) v=1;

else if(b1>=(a1+c1)) v=1;

else if(c1>=(a1+b1)) v=1;

else

{

if(a1==b1 && a1==c1 && b1==c1) v=4;

else if( (a1==b1) && (a1==c1) && (b1!=c1) ) v=5;

       else if( (a1==b1) && (a1!=c1) && (b1==c1) ) v=5;

      else if( (a1==b1) && (a1!=c1) && (b1!=c1) ) v=3;

      else if( (a1!=b1) && (a1==c1) && (b1==c1) ) v=5;

else if( (a1!=b1) && (a1==c1) && (b1!=c1) ) v=3;

else if( (a1!=b1) && (a1!=c1) && (b1==c1) ) v=3;

else if( (a1!=b1) && (a1!=c1) && (b1!=c1) ) v=2;

}

 return(v);

 }

void expoutput(int a, int b, int c, int i, int exop[])

{

if(a==b && a==c && b==c) exop[i]=4;

else if((a+b<=c) || (b+c<=a) || (a+c<=b)) exop[i]=1;

else if( (a!=b) && (a!=c) && (b!=c) ) exop[i]=2;

else if( (a==b) && (a!=c) && (b!=c) ) exop[i]=3;

else if( (a!=b) && (a==c) && (b!=c) ) exop[i]=3;

else if( (a!=b) && (a!=c) && (b==c) ) exop[i]=3;

else exop[i]=5;

}

void main()

{

int i,j,k,a1,b1,c1,t,actop[350];

int a[10],b[10],c[10],exop[10];

int amin,amax,bmin,bmax,cmin,cmax;

clrscr();

printf("enter the range of a \n");

scanf("%d %d",&amin,&amax);

printf("enter the range of b \n");

scanf("%d %d",&bmin,&bmax);

printf("enter the range of c \n");

scanf("%d %d",&cmin,&cmax);

printf("enter the values of a1 b1 c1\n");

scanf("%d %d %d",&a1,&b1,&c1);

if(a1==b1 && a1==c1 && b1==c1)

printf("%3d %3d %3d Equilateral",a1,b1,c1);

else if((a1+b1<=c1) || (b1+c1<=a1) || (a1+c1<=b1))

       printf("%3d %3d %3d not a triangle",a1,b1,c1);

else if( (a1!=b1) && (a1!=c1) && (b1!=c1) )

printf("%3d %3d %3d Scalene",a1,b1,c1);

else printf("%3d %3d %3d Isosceles",a1,b1,c1);

printf("\n\n\n");

getch();

a[1]=bmin+cmin;

a[2]=amin;

a[3]=amin;

a[4]=(amin+amax)/2;

a[5]=(cmin+cmax)/2;

a[6]=(bmin+bmax)/2;

a[7]=((amin+amax)/2)+1;

a[8]=((amin+amax)/2)-1;

b[1]=bmin;

b[2]=amin+cmin;

b[3]=bmin;

b[4]=(bmin+bmax)/2;

b[5]=(cmin+cmax)/2;

b[6]=((bmin+bmax)/2)+1;

b[7]=((amin+amax)/2);

b[8]=((amin+amax)/2);

  c[1]=cmin;

c[2]=cmin;

c[3]=amin+bmin;

c[4]=(cmin+cmax)/2;

c[5]=((cmin+cmax)/2)+1;

c[6]=((bmin+bmax)/2);

c[7]=((amin+amax)/2);

c[8]=((amin+amax)/2)+1;

 for (i=1;i<=8;i++)

   {

expoutput(a[i],b[i],c[i],i,exop);

actop[i]=actoutput(a[i],b[i],c[i]);

printf("%3d %3d %3d \n",a[i],b[i],c[i]);

if(exop[i]==1) printf("not a triangle \n");

   else if(exop[i]==2) printf("scalene \n");

   else if(exop[i]==3) printf("isoceles \n");

   else if(exop[i]==4) printf("equilateral \n");

   else if(exop[i]==5) printf("impossible \n");

    if(actop[i]==1) printf("not a triangle \n");

    else if(actop[i]==2) printf("scalene \n");

   else if(actop[i]==3) printf("isoceles \n");

   else if(actop[i]==4) printf("equilateral \n");

   else if(actop[i]==5) printf("impossible \n");

   if(exop[i]==actop[i]) printf("test pass \n");

   else printf("test fail\n");

   }

   getch();

   }

1 Answer

0 votes
answered May 2, 2018 by hudginsm (190 points)
#include<stdio.h>
#include<conio.h>

int actoutput(int a1,int b1, int c1){
    int v;
    
    if(a1>=(b1+c1)){
        v=1;
    }
    else if(b1>=(a1+c1)){
        v=1;
    }
    else if(c1>=(a1+b1)){
        v=1;
    }
    else{
        if(a1==b1 && a1==c1 && b1==c1){
            v=4;
        }
        else if((a1==b1) && (a1==c1) && (b1!=c1)){
            v=5;
        }
        else if((a1==b1) && (a1!=c1) && (b1==c1)){
            v=5;
        }
        else if((a1==b1) && (a1!=c1) && (b1!=c1)){
            v=3;
        }
        else if((a1!=b1) && (a1==c1) && (b1==c1)){
            v=5;
        }
        else if((a1!=b1) && (a1==c1) && (b1!=c1)){
            v=3;
        }
        else if((a1!=b1) && (a1!=c1) && (b1==c1)){
            v=3;
        }
        else if((a1!=b1) && (a1!=c1) && (b1!=c1)){
            v=2;
        }
    }
    
     return(v);

 }

void expoutput(int a, int b, int c, int i, int exop[]){
    if(a==b && a==c && b==c){
        exop[i]=4;
    }
    else if((a+b<=c) || (b+c<=a) || (a+c<=b)){
        exop[i]=1;
    }
    else if((a!=b) && (a!=c) && (b!=c)){
        exop[i]=2;
    }
    else if((a==b) && (a!=c) && (b!=c)){
        exop[i]=3;
    }
    else if((a!=b) && (a==c) && (b!=c)){
        exop[i]=3;
    }
    else if((a!=b) && (a!=c) && (b==c)){
        exop[i]=3;
    }
    else{
        exop[i]=5;
    }
}

void main(){
    int i,j,k,a1,b1,c1,t,actop[350];
    int a[10],b[10],c[10],exop[10];
    int amin,amax,bmin,bmax,cmin,cmax;
    
    clrscr();
    
    printf("enter the range of a \n");
    scanf("%d %d",&amin,&amax);
    printf("enter the range of b \n");
    scanf("%d %d",&bmin,&bmax);
    printf("enter the range of c \n");
    scanf("%d %d",&cmin,&cmax);
    printf("enter the values of a1 b1 c1\n");
    scanf("%d %d %d",&a1,&b1,&c1);
    
    if((a1==b1) && (a1==c1) && (b1==c1)){
        printf("%3d %3d %3d Equilateral",a1,b1,c1);
    }
    else if((a1+b1<=c1) || (b1+c1<=a1) || (a1+c1<=b1)){
        printf("%3d %3d %3d not a triangle",a1,b1,c1);
    }
    else if((a1!=b1) && (a1!=c1) && (b1!=c1)){
        printf("%3d %3d %3d Scalene",a1,b1,c1);
    }
    else{
        printf("%3d %3d %3d Isosceles",a1,b1,c1);
    }
    
    printf("\n\n\n");
    
    getch();
    
    a[1]=bmin+cmin;
    a[2]=amin;
    a[3]=amin;
    a[4]=(amin+amax)/2;
    a[5]=(cmin+cmax)/2;
    a[6]=(bmin+bmax)/2;
    a[7]=((amin+amax)/2)+1;
    a[8]=((amin+amax)/2)-1;
    
    b[1]=bmin;
    b[2]=amin+cmin;
    b[3]=bmin;
    b[4]=(bmin+bmax)/2;
    b[5]=(cmin+cmax)/2;
    b[6]=((bmin+bmax)/2)+1;
    b[7]=((amin+amax)/2);
    b[8]=((amin+amax)/2);
    
    c[1]=cmin;
    c[2]=cmin;
    c[3]=amin+bmin;
    c[4]=(cmin+cmax)/2;
    c[5]=((cmin+cmax)/2)+1;
    c[6]=((bmin+bmax)/2);
    c[7]=((amin+amax)/2);
    c[8]=((amin+amax)/2)+1;
    
    for (i=1;i<=8;i++){
        expoutput(a[i],b[i],c[i],i,exop);
        actop[i]=actoutput(a[i],b[i],c[i]);
        
        printf("%3d %3d %3d \n",a[i],b[i],c[i]);
        
        if(exop[i]==1){
            printf("not a triangle \n");
        }
        else if(exop[i]==2){
            printf("scalene \n");
        }
        else if(exop[i]==3){
            printf("isoceles \n");
        }
        else if(exop[i]==4){
            printf("equilateral \n");
        }
        else if(exop[i]==5){
            printf("impossible \n");
        }
        
        if(actop[i]==1){
            printf("not a triangle \n");
        }
        else if(actop[i]==2){
            printf("scalene \n");
        }
        else if(actop[i]==3){
            printf("isoceles \n");
        }
        else if(actop[i]==4){
            printf("equilateral \n");
        }
        else if(actop[i]==5){
            printf("impossible \n");
        }
        
        if(exop[i]==actop[i]){
            printf("test pass \n");
        }
        else{
            printf("test fail\n");
        }
    }
    
    getch();
}

I will work on commenting the code to help explain it, but does this formmatting make it a bit clearer?
commented May 7, 2018 by Ryan (1,230 points)
You have an if-else if-else suite with no braces - is this supposed to be that way?
Welcome to OnlineGDB Q&A, where you can ask questions related to programming and OnlineGDB IDE and and receive answers from other members of the community.
...