Xoá phần tử thứ N trong Danh sách liên kết con trỏ bằng C

Đây là chương trình xoá phần tử thứ n trong danh sách liên kết, chương trình được viết bằng C, các bạn cùng tham khảo.

#include
#include
#include
#include

typedef struct tagsl {
int key;
struct tagsl *next;
} SL;

SL *first, *last;

void initialize()
{
first = last = NULL;
}

void cleanup()
{
SL *f;

while (first != NULL)
{
f = first;
first = first->next;
free(f);
}
first = last = NULL;
}

void insert(int key)
{
SL *s;

s = (SL *)malloc(sizeof(SL));
s->key = key;
s->next = NULL;
if (first == NULL)
first = last = s;
else
{
last->next = s;
last = last->next;
}
}

void inds()
{
SL *f;
printf(“\nDanh sach : “);
f = first;
while (f != NULL)
{
printf(“%3d”, f->key);
f = f->next;
}
}

int xoa_n(int n)
{
SL *f, *a;
int i = 0;
a = NULL;
f = first;
while (inext;
}
if (f == NULL)
return 0;
else
{
if (a == NULL)
{
first = f->next;
free(f);
}
else if (f->next == NULL)
{
last = a;
last->next = NULL;
free(f);
}
else
{
a->next = f->next;
free(f);
}
return 1;
}
}

void main()
{
int i, n;
initialize();
randomize();
for (i=0; i<20; i++)
insert(random(20));
inds();
do {
printf(“\nXoa phan tu thu (<0 de thoat) : “); scanf(“%d”, &n); if (n>-1)
{
if (xoa_n(n))
inds();
else
printf(“Danh sach co it hon %d phan tu”, n+1);
}
} while (n > -1);
cleanup();
}

Cùng chạy chương trình và xem kết quả thế nào nhé.

How to read Excel file using c#

This is a code read file trainghia.xls and print to console

using System;
using System.Collections.Generic;
using System.Data.OleDb;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ReadExcelFile
{
    class Program
    {
        static void Main(string[] args)
        {
            string con = @”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\p_hung\Desktop\trainghia.xls;Extended Properties=’Excel 8.0;HDR=Yes;'”;
            using (OleDbConnection connection = new OleDbConnection(con))
            {
                connection.Open();
                OleDbCommand command = new OleDbCommand(“select * from [Sheet1$]”, connection);
                using (OleDbDataReader dr = command.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        var row1Col0 = dr[0];
                        Console.WriteLine(row1Col0.ToString());                       
                    }
                }
            }
        }
    }
}

Ví dụ về danh sách liên kết, sử dụng con trỏ trong c

Đây là ví dụ về danh sách liên kết sử dụng con trỏ trong c

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream.h>
#include <dos.h>
#define false 0
#define true 1
struct nhansu {char ten[20];int tuoi;nhansu* next;};
int snv;nhansu *phead,*pcurrent;
void khoitao();
void nhap();
void xem();
void sapxep();
void sapxep2();
//=================================
void main()
{const int F1=59,F2=60,F3=61,F4=62,F10=68;
char chon;
while(true)
  {clrscr();
   printf(“\nF1. Khoi tao”);
   printf(“\nF2. Nhap”);
   printf(“\nF3. Xem”);
   printf(“\nF4. Sap xep”);
   printf(“\nF10.Ket thuc”);
   printf(“\n    Nhan phim F1 – F10 de chon”);
   chon=getch();
   if(chon==0) chon=getch();
   if(chon==F10) break;
   switch(chon)
    {case F1: khoitao();break;
     case F2: nhap();break;
     case F3: xem();break;
     case F4: sapxep2();break;
    }
   gotoxy(50,24);
   printf(“Nhan phim bat ky de tiep tuc”);
   getch();
  }
}
//========================================
void khoitao()
{phead=NULL;
  snv=0;pcurrent=NULL;
};
//========================================
void nhap()
{int i,mm;
  nhansu *p1,*p, *tmp;
  p=p1=phead;
  while(p!=NULL)
   {p1=p;
    p=p->next;
   }
  cout<<endl<<“Nhap bao nhieu nguoi?”;cin>>mm;
  for(i=0;i<mm;i++)
   {tmp=new nhansu;tmp->next=NULL;
    cout<<endl<<“Nhap nhan vien thu “<<snv+i+1<<“: “;
    cout<<endl<<“Ten: “;gets(tmp->ten);
    cout<<“Tuoi: “;cin>>tmp->tuoi;
    if(p1==NULL)
     {p1=phead=tmp;}
      else
      {p1->next=tmp;p1=tmp;}

   }
  snv+=mm;
  pcurrent=p1;
}
//========================================
void xem()
{int i;
  cout<<endl<<“Danh sach nhan vien:”;
  cout<<endl<<“Ten      tuoi”;
  nhansu *p=phead;
  while(p!=NULL)
   {cout<<endl<<p->ten<<”        “<<p->tuoi;
    p=p->next;
   }
}
//========================================
void sapxep()
{if(snv<2) return;
  nhansu *p,*p1,*p2,*ptmp,tmp;int mtuoi;
  p=p1=p2=phead;
  //pt truoc p,p1t truoc p1
  while(p1!=NULL)
   {p=p1;
    p2=p1->next;
    while(p2!=NULL)
     {if(p2->tuoi<p->tuoi) p=p2;
      p2=p2->next;
     }
    if(p!=p1)
     {tmp=*p1;ptmp=p1->next;
      *p1=*p;p1->next=ptmp;
      ptmp=p->next;*p=tmp;
      p->next=ptmp;
     }
    p1=p1->next;
   }
}
//========================================
void sapxep2()
{if(snv<2) return;
  nhansu *p,*pt,*p1,*p1t,*p2,*p2t,*ptmp,tmp;int mtuoi;
  p1t=p1=phead;
  //pt truoc p,p1t truoc p1
  while(p1!=NULL)
   {pt=p1t;
    p=p1;
    p2t=p1;
    p2=p1->next;
    while(p2!=NULL)
     {if(p2->tuoi<p->tuoi) {pt=p2t;p=p2;}
      p2t=p2;
      p2=p2->next;
     }
    if(p==p1)
     {p1t=p1;
      p1=p1->next;
      continue;
     }
    if(p1==phead)
     {if(p1->next==p)//p va p1 lien nhau
    {ptmp=p->next;
     phead=p;p->next=p1;p1->next=ptmp;
    }
    else
    {ptmp=p->next;
     phead=p;p->next=p1->next;pt->next=p1;p1->next=ptmp;
    }
     }
     else
     {if(p1->next==p)//p va p1 lien nhau
    {ptmp=p->next;
     p1t->next=p;p->next=p1;p1->next=ptmp;
    }
    else
    {ptmp=p->next;
     p1t->next=p;p->next=p1->next;pt->next=p1;p1->next=ptmp;
    }
     }
    p1=p;
    p1t=p1;
    p1=p1->next;
   }
}

Vui lòng comment nội dung cần hỏi đáp cũng như trao đổi thêm

Tính thứ trong tuần sử dụng C

Đây là code viết bằng c, chúng ta cần nhập ngày tháng năm vào, chương trình sẽ đưa ra thứ tương ứng.

Chú ý : chương trình chỉ mang tính chất minh họa

#include <stdio.h>
#include <conio.h>
struct date
{
int month;
int day;
int year;
} date_1;

long int funct1 (int y,int m)
{
long int result;
if ( m <= 2 )
y -= 1;
result = y;
return (result);
}

long int funct2 (int m)
{
long int result;
if ( m <= 2 )
result = m + 13;
else
result = m + 1;
return(result);
}

long int day_count (int m, int d, int y)
{
long int number;
number = 1461 * funct1(y,m) / 4 + 153 * funct2(m) / 5 + d;

return (number);
}

void main ()
{
long int number_of_days1;
int day_of_week;

printf (“Nhap vao mot ngay (dd mm yyyy), vd 12 03 1999 \n”);
scanf (“%d %d %d”, &date_1.day, &date_1.month, &date_1.year);
number_of_days1 = day_count (date_1.month, date_1.day, date_1.year);
printf (“\nNgay la : ” );

day_of_week = (number_of_days1 – 621049) % 7;
switch (day_of_week)
{
case 0 :
printf (“Chu Nhat,”);
break;
case 1 :
printf (“Thu Hai,”);
break;
case 2 :
printf (“Thu Ba,”);
break;
case 3 :
printf (“Thu Tu,”);
break;
case 4 :
printf (“Thu Nam,”);
break;
case 5 :
printf (“Thu Sau,”);
break;
case 6 :
printf (“Thu Bay,”);
break;
}
getch();
}

Trim a string using C

#include <ctype.h>
#include <string.h>
#include <stdio.h>
#define NUL ”
char *trim(char *str)
{
      char *ibuf = str, *obuf = str;
      int i = 0, cnt = 0;
      if (str)
      {
           for (ibuf = str; *ibuf && isspace(*ibuf); ++ibuf);
            if (str != ibuf)
                  memmove(str, ibuf, ibuf – str);          
            while (*ibuf)
            {
                  if (isspace(*ibuf) && cnt)
                        ibuf++;
                  else
                  {
                        if (!isspace(*ibuf))
                              cnt = 0;
                        else
                        {
                              *ibuf = ‘ ‘;
                              cnt = 1;
                        }
                        obuf[i++] = *ibuf++;
                  }
            }
            obuf[i] = NUL;
            while (–i >= 0)
            {
                  if (!isspace(obuf[i]))
                        break;
            }
            obuf[++i] = NUL;
      }
      return str;
}
void main(int argc, char *argv[])
{
    char s[1000]="  Anh      yeu         em ";
      printf("trim(\"%s\") ", s);
      printf("returned \"%s\"\n", trim(s));
}