Posts

pattern a2b3 aabbb

Program: #include<stdio.h> int main() {     char str[]="a2b3c5d1";     int i;     char ch;     int count=0;     for(i=0;str[i]!='\0';i++)     {         if((str[i]>='a')&&(str[i]<='z'))         {             if(count!=0)             {                 for(int j=0;j<count;j++)                 {                     printf("%c",ch);                 }             }             count=0;             ch=str[i];         }         if((str[i]>='0')&&(str[i]<='9'))         {             count=(count*10)+(str[i]-'0');         }         if(str[i+1]=='\0')         {         for(int j=0;j<count;j++)                 {                     printf("%c",ch);                 }         }     } }
Output: aabbbcccccd                                                                                                                                   

Print the words of a string in reverse

Program: #include<stdio.h> #include<string.h> int main() {     char str[]="My name is Allwin";     int len=strlen(str);     int i;     for(i=len-1;i>=0;i--)     {         if(str[i]==' ')         {             str[i]='\0';             printf("%s ",&(str[i])+1);         }     }     //To print the first word     printf("%s",str);     return 0; }
Output: Allwin is name My

Check whether the parenthesis are balanced in the given expression.

Program #include<stdio.h> char arr[100]; int top=-1; void push(char a) {     arr[top]=a;     top++; } void pop() {     if(top==-1)     {         printf("Invalid expression");         exit(0);     }     else     {         top--;     } } void find_top() {     if(top==-1)     {         printf("Valid");     }     else     {         printf("Invalid");     } } int main() {     char a[100];     int i;     scanf("%s",a);     for(i=0;a[i]!='\0';i++)     {         if(a[i]=='(')         push(a[i]);         else if(a[i]==')')         pop();     }     find_top();     return 0; }


Output: (c+d))                                                                                                                                    Invalid                                                                                                                                           ((a+b)(c+d))���������������������������������������������������…

For any given matrix find the path from the start to the end which gives the maximum sum. Traverse only right or down. Example: starting index is 15 (left top) and ending index is 10 (bottom right) 15 25 30 45 25 60 70 75 10 O/P:15->45->70->75->10 sum is 215

ProblemFor any given matrix find the path from the start to the end which gives the maximum sum. Traverse only right or down.
Example: starting index is 15 (left top) and ending index is 10 (bottom right)
15 25 30
45 25 60
70 75 10
O/P:15->45->70->75->10 sum is 215
Solution#include<stdio.h> int main() {     int row=0,col=0;     scanf("%d %d",&row,&col);     int arr[row][col];     int i,j;     for(i=0;i<row;i++)     {         for(j=0;j<col;j++)         {             scanf("%d",&arr[i][j]);         }     }     for(i=0;i<row;i++)     {         for(j=0;j<col;j++)         {             printf("%d ",arr[i][j]);         }         printf("\n");     }     int sum=arr[0][0];     int cr=0,cc=0;     int prevrow=row-1;     int prevcol=col-1;     while(1)     {         int down=arr[cr+1][cc];         int right=arr[cr][cc+1];         if(cr+1>=row)         {             down=0;         }         if(cc+1>=col)         {             right=0;         }      …

Sum of n numbers using linked list

#include<stdio.h>
#include<stdlib.h>
struct node
{
    int data;
    struct node *next;
};
struct node *head = NULL;
struct node *ptr = NULL;
void insert(int num)
{
    struct node *temp = (struct node*)malloc(sizeof(struct node));
    if(head==NULL)
    {
        temp->data=num;
        head=temp;
        ptr=head;
        head->next=NULL;
    }
    else
    {
        temp->data=num;
        ptr->next=temp;
        ptr=temp;
        ptr->next=NULL;
    }
}
void add()
{
    int sum=0;
    ptr=head;
    while(ptr!=NULL)
    {
        sum+=ptr->data;
        ptr=ptr->next;
    }
    printf("%d",sum);
}
int main()
{
    int num;
    printf("Enter the total numbers :  ");
    scanf("%d",&num);
    for(int i=0;i<num;i++)
    {
        int value;
        scanf("%d",&value);
        insert(value);
    }
    add();
}


output Enter the total numbers :  10���������������������������������������������������������…

Binary Search

Program: #include<stdio.h>
int main()
{
    int numbers;
    printf("Enter the no.of.elements \n");
    scanf("%d",&numbers);
    int arr[numbers];
    int itr=0;
    for(itr=0;itr<numbers;itr++)
    {
        scanf("%d",&arr[itr]);
    }
    int search=0;
    printf("\n Enter the number to be searched : ");
    scanf("%d",&search);
    int first=0;
    int last=numbers-1;
    int middle = (first+last)/2;
    while(first<=last)
    {
        if(arr[middle]<search)         {             first = middle+1;
        }
        else if(arr[middle]==search)
        {
            printf("%d is present at %d position ",search,middle+1);
            break;
        }

        else
        {
            last = middle-1;
        }
        middle = (first+last)/2;
    }
    if(first>last)
    {
        printf("The value is not present ");
    }
}
OUTPUT:
Enter the no.of.elements�����������������������������������������������������������…

Sort numbers based on the no.of factors

Program: #include<stdio.h>
struct number{
    int num;
    int fact;
};
int main()
{
    int n;
    printf("Enter the total numbers \n");
    scanf("%d",&n);
    struct number num[n];
    int i,j;
    for(i=0;i<n;i++)
    {
        printf("Enter the %d number \n",i);
        scanf("%d",&num[i].num);
    }
    for(i=0;i<n;i++)
    {
        int count=0;
        for(j=2;j<=num[i].num;j++)
        {
            if(num[i].num%j==0)
            {
                count++;
            }
        }
        num[i].fact=count;
    }
    for(i=0;i<n;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(num[i].fact > num[j].fact)
            {
                int temp = num[i].fact;
                num[i].fact = num[j].fact;
                num[j].fact = temp;

                temp = num[i].num;
                num[i].num = num[j].num;
                num[j].num = temp;
            }
        }
    }
    for(i=0;i<n;i++)
    {
        printf("%d   -----   …