mảng,xâu,cấu trúc

Màu nền
Font chữ
Font size
Chiều cao dòng

Bài mảng:

1.cho mảng số thực gốm n phần tử (n nhập từ bàn phím),

+ nhập giá trị các phần tử của mảng.

+in mảng vừa nhập ra màn hình.

+ tính tổng dương và trung bình cộng âm.

+tìm max, min

+ sắp xếp theo thứ tự tăng dần .

+ tính tổng các phần tử của mảng.

Bài làm:

//bai tap ve mang

#include<stdio.h>

#include<conio.h>

void main()

{

            int n,i,j,d;

            float a[100],td,ta,tbc,max,min,tong,tg;

            printf("

nhap vao so phan tu cua mang:");scanf("%d",&n);

            printf("

nhap vao phan tu thu:");

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

            {

                        printf("

a[%d]:",i);scanf("%f",&a[i]);

            }

            //in mang ra man hinh

            printf("\ mang vua nhap la:");

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

            {

                        printf("%8.1f",a[i]);

            }

            //tinh tong cac phan tu duong va tbc cac phan tu am

            td=0;ta=0;d=0;tbc=0;

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

                        if(a[i]>0)

                        {

                                    td+=a[i];

                        }

                        else

                        {

                                    d++;

                                    ta+=a[i];

                        }

                        tbc=ta/d;

                        printf("

tong duong la:%2.1f",td);

                        if(d==0) printf("

khong co phan tu nao");

                        else printf("

trung binh cong la:%2.1f",tbc);

                        //tim max min

                        max=a[1];min=a[1];

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

                        {

                                    if(a[i]>max) max=a[i];

                                    if(a[i]<min) min=a[i];

                        }

                        printf("

gia tri lon nhat: %2.1f ",max);

                        printf("

gia tri nho nhat la:%2.1f",min);

                        //sap xep mang theo thu tu tnag hoac giam

                        for(i=1;i<=n-1;i++)

                                    for(j=i+1;j<=n;j++)

                                                if(a[i]>a[j])

                                                {

                                                            a[i]=tg;

                                                            a[i]=a[j];

                                                            a[j]=tg;

                                                }

                                                printf("

mang da sap xep tang dan la:");

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

                                                {

                                                            printf("%8.1f  ",a[i]);

                                                }

                        //tinh tong

                                                tong=0;

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

                                                tong+=a[i];

                                    printf("

tong cac phan tu cua mang la %2.1f:",tong);

            getch();

}

2. cho mảng số nguyên gốm n phần tử

+ nhập và in mảng.

+ đếm xem mnagr có bao nhiêu số chẵn.tính tổng các số lẻ.

+ tính tổng bình phương các phaanf tử của mảng.

+ tính tổng các phẩn tử >0 và chia hết cho 3.

Bài làm:

#include<stdio.h>

#include<conio.h>

void main()

{

            int a[50],n,i,dc,dl,tl,tbp,td;

            printf("

nhap vao so phan tu cua mang:");scanf("%d",&n);

            printf("

nhap vao cac phan tu cua mang:");

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

                        {

                        printf("

a[%d]: ",i);scanf("%d",&a[i]);

            }

            //in mang

            printf("

mang vua nhap la:");

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

                        printf("

%d",a[i]);

            //dem chan dem le,tong le

            dc=0;dl=0;tl=0;

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

                        {

                        if(a[i]%2==0) dc++;

                        else

                                    {

                                    dl++;

                                    tl+=a[i];

                        }

            }

            printf("

so phan tu chan la: %d",dc);

            printf("

so phan tu le la: %d",dl);

            printf("

tong le la:%d",tl);

            //tong binh phuong

            tbp=0;

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

                        tbp+=a[i]*a[i];

            printf("

tong binh phuong la:%d",tbp);

            //tong duong chia het cho 3

            td=0;

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

                        {

                        if(a[i]>0 && a[i] % 3==0)

                                    td+=a[i];

            }

            printf("

tong duong la:%d",td);

            getch();

}

. bài 4.

Cho 2 mảng số nguyên A,B nhập mỗi mảng gồm n phần tử( n nhập từ bàn phím ) tìm các cặp Ai,Bi chia heets  cho nhau. Chỉ rõ cặp thứ mấy? và giá trị của các số đó la? Có bao nhieu cặp số thõa mãn điều kiện thong báo kết quả.

Bài làm:

#include<stdio.h>

#include<conio.h>

void main()

{

            int a[50],b[50],i,d,n;

            printf("

nhap vao so phan tu cua mang a:");scanf("%d",&n);

            printf("

nhap vao cac phan tu cua mang a:");

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

                        {

                        printf("

a[%d]: ",i);scanf("%d",&a[i]);

            }

            printf("

nhap vao so phan tu cua mang b:");scanf("%d",&n);

            printf("

nhap vao cac phan tu cua mang b:");

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

            {

                        printf("

b[%d]: ",i);scanf("%d",&b[i]);

            }

            //in mang

            printf("

mang da nhap la:");

            printf("

mang a la:");

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

                        {

                        printf("%d  ",a[i]);

                        }

            printf("

mang b la:");

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

                        {

                printf("%d  ",b[i]);

                        }

            //tim cap ai va bi chia het cho nhau

            d=0;

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

                        {

                        if(a[i]%b[i]==0 || b[i]%a[i]==0)

                                    {

                                    d++;

                                    printf("

cap so a[%d],b[%d] chia het cho nhau co gia tri la: %d",i,a[i],b[i]);

                        }

            }printf("

co %d cap so chia het cho nhau",d);

            getch();

}

Bài 5:

Nhập ma trận số thực gốm n hang, m cột

+ in tính tổng các phần tử dương.

+ tính trung bình cộng cac phần tử dương.

+ tính tích các phần tử của mảng.

+ tìm max,.

Bài làm:

#include<stdio.h>

#include<conio.h>

void main()

{

            float a[50][50],td,tbca,tich,max,ta,d;

            int n,m,i,j;

            //nhap mang

            printf("

nhap vao so hang so cot:");scanf("%d%d",&n,&m);

            printf("

nhap vao cac phan tu");

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

                        for(j=1;j<=m;j++)

                        {

                                    printf("

a[%d][%d]: ",i,j);scanf("%f",&a[i][j]);

                        }

            //in mang

                        printf("

maang vua nhap la:

");

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

                        {

                                    for(j=1;j<=m;j++)

                                                printf("%2.1f  ",a[i][j]);

                                        printf("

");

                        }

            //tinh tong duong

                        td=0;

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

                                    for(j=1;j<=m;j++)

                                                if(a[i][j]>=0)

                                                {

                                                            td+=a[i][j];

                                                }

                                                printf("

tong cac phan tu duong la:%2.1f",td);

            //tinh trung binh cong am

                        tbca=0;d=0;ta=0;

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

                                    for(j=1;j<=m;j++)

                                                if(a[i][j]<0)

                                                {

                                                            d++;

                                                            ta+=a[i][j];

                    tbca=ta/d;

                                                }

                                                if(d==0) printf("

khong co phan tu am nao!");

                                        else  printf("

trung binh cong phan tu am la: %2.1f",tbca);

            //tinh tich

                                                tich=1;

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

                                                            for(j=1;j<=m;j++)

                                                            {

                                                                        tich*=a[i][j];

                                                            }

                                                printf("

tich la:%2.1f",tich);

            //tim max

                                                max=a[1][1];

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

                                                            for(j=1;j<=m;j++)

                                                            {

                                                                        if(a[i][j]>max) max=a[i][j];

                                                            }

                                                printf("

max la:%2.1f",max);

getch();

}

Bài tập cấu trúc:

Bài 1:

Nhập vào danh sách gốm n sinh viên.(n<=100) và nhập vào từ bàn phím mỗi sinh viên gồm có các thông tin: họ đệm, tên, toán, lý, tổng.

+ in ds sinh viên vừa nhập ra mà hình.

+ in ds ssv có tổng điểm >14

+ in dssv phải thi lại.

+ sắp xếp ra màn hình theo thứ tự tăng dần của tổng điểm.

Bài làm:

#include<stdio.h>

#include<conio.h>

#include<string.h>

#include<math.h>

struct sinhvien

{

            char hodem[20],ten[7];

            float toan,ly,tong;

}ds[100];

void main()

{

            int n,i,j;

    float t,l,tg;

            //nhap vao danh sach sinh vien

            do

            {

            printf("

nhap vao so sinh vien:");scanf("%d",&n);

            }

            while(n>100);

            printf("

nhap vao thong tin cua tung sinh vien");

            for(i=0;i<n;i++)

            {

                        printf("

NHAP THONG IN SINH VIEN THU:%d",i);

                        printf("

ho dem");scanf("%s",&ds[i].hodem);

                        printf("

ten");scanf("%s",&ds[i].ten);

                        printf("

nhap diem toan:");scanf("%f",&t);

                        ds[i].toan=t;

                        printf("

diem ly:");scanf("%f",&l);

                        ds[i].ly=l;

                        ds[i].tong=ds[i].toan+ds[i].ly;

            }

            //in ra ma hinh

            printf("

DANH SACH SINH VIEN VUA NHAP LA:");

            printf("

hodem   ten    diemtoan     diemly    tong");

            for(i=0;i<n;i++)

            {

                        printf("

%5s%5s%8.1f%8.1f%8.1f",ds[i].hodem,ds[i].ten,ds[i].toan,ds[i].ly,ds[i].tong);

            }

            //in danh sach sinh vien co tong >14

            for(i=0;i<n;i++)

            if(ds[i].tong>14)

            {

                        printf("

nhuwng sinh vien co tong >14 la:");

                        printf("

ten   tong");

                        //for(i=0;i<n;i++)

                                    printf("

%5s%8.1f",ds[i].ten,ds[i].tong);

            }

            else if(ds[i].tong<14) printf("

khong co sinh vien nao");

            //danh sach sinh vien phai thi lai

            for(i=0;i<n;i++)

                        if(ds[i].toan<5 || ds[i].ly<5)

                        {

                                    printf("

sinh vien bi thi lai la:");

                                    printf("

%10s%2.1f%2.1f",ds[i].ten,ds[i].toan,ds[i].ly);

                        }

                        //sap xep

                        for(i=0;i<n-1;i++)

                                    for(j=i+1;j<n;j++)

                                    if(ds[i].tong<ds[j].tong)

                                    {

                                                ds[i].tong=tg;

                                                ds[i].tong=ds[j].tong;

                                                ds[j].tong=tg;

                                    }

                                    printf("

danh sach sinh vien da sap xep la:");

                                    for(i=0;i<n;i++)

                                                printf("

%5s%5s%8.1f%8.1f%2.1f",ds[i].hodem,ds[i].ten,ds[i].toan,ds[i].ly,ds[i].tong);

            getch();

}

Bài  làm them:

Viết chương trình nhập vào một ma trận các số nguyên, gồm m hàng, n cột. In ma trận đó lên màn hình. Nhập một số nguyên k vào và xét xem có phần tử nào của ma trận trùng với k không ? Ở vị trí nào ? Có bao nhiêu phần tử ?

#include "stdio.h"

#include "conio.h"

main()

{

int a[10][10],m,n,i,j,c,k,d=0;

printf("

Nhap kich thuoc cua mang A: ");

scanf("%d%d",&m,&n);

for(i=0;i<m;i++)

for(j=0;j<n;j++)

{

printf("

a[%d][%d]= ",i,j);scanf("%d",&a[i][j]);

}

printf("

Ma tran A vua nhap la:

");

for(i=0;i<m;i++)

{

for(j=0;j<n;j++)

printf("%8d",a[i][j]);

printf("

");

}

printf("

nhap vao so nguyen k:");scanf("%d",&k);

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

 for(j=1;j<=n;j++)

        if(a[i][j]==k)

             {

             d++;

                   printf("

co %d phan tu trung voi k va o vi tri %d%d",k,i,j);

       }

 printf("

co %d phan tu ",d);

}

Bài tập xâu

Bài 12: Nhập vào một xâu văn bản. Viết ct thay thế tất cả ký tự ‘a’,’A’ trong xâu bằng kí tự b và tìm số lần xuất hiện của kí tự ‘a’,’A’ trong xâu. In kq ra màn hình

#include<stdio.h>

#include<conio.h>

#include<string.h>

void main()

{

      char s1[100];

      int i,n,d;

      printf("Nhap vao xau 1: ");gets(s1);

      printf("Xau vua nhap la: ");puts(s1);

      n= strlen(s1);

      d=0;

      for(i=0;i<=n;i++)

            if(s1[i]=='a'||s1[i]=='A')

            {

                  d=d+1;

                  s1[i]='b';

            }

      printf("Xau da thay the la:");puts(s1);

      printf("Da thay the %d ky tu",d);

}

Bài 13: Nhập vào một xâu ký tự dài không quá 80 ký tự từ bàn phím. Lập chương trình thực hiện công việc sau:

+ Chuyển xâu đó thành xâu chữ in hoa

+ Chuyển xâu đó thành vâu chữ thường

#include<stdio.h>

#include<conio.h>

#include<string.h>

void main()

{

      char s[80];

      int n;

      do

      {

      printf("

nhap vao xau ky tu:");

      gets(s);

      n=strlen(s);

      }

      while(n>80);

            printf("

xau chu in hoa la:");

          puts(strupr(s));

            printf("

xau chu thuong la:");

            puts(strlwr(s));

getch();

}

Bài 1 :

Lập ct nhập vào 1 xâu ký tự từ bàn phím

+ đếm số từ trong xâu vừa nhập

+ in mỗi từ trên một dòng

#include<stdio.h>

#include<conio.h>

#include<string.h>

void main()

{

  char s[100];

  int i,n,d;

  printf("nhap vao xau :");

  gets(s);

  n=strlen(s);

  if(s[0]=' ') d=0;

   else d=1;

    for (i=0;i<n;i++)

                        if(s[i]==' ')

                                    {

                              d++;

                                      printf("

");

                                    }

        else

                                    printf("%c",s[i]);

                            printf("

tong so tu la :%d",d);

            getch();

}

Bài 2: nhập vào một xâu dài ko quá 80 ký tự từ bàn phím lập ct thực hiện

+ chuyển xâu đó thành xâu chữ in hoa

+ chuyển xâu đó thành xâu chữ in thường

#include<stdio.h>

#include<conio.h>

#include<string.h>

 void main()

 {

   char s[80];

   int n;

    do

            {

             printf("nhap vao xau ky tu");

             gets(s);

             n=strlen(s);     

            }

  while (s>80)

             printf("

xau chu hoa la:");

             puts(strupr(s));

             printf("

xau chu thuong la :");

             puts(strlwr(s));

  getch();

 }

Bài 3 : nhập vào 2 xâu ký tự kt xem 2 xâu đó có bằng nhau ko  . nếu không thì thông báo vị trí khác nhau đầu tiên của 2 xâu đó

#include<stdio.h>

#include<conio.h>

#include<string.h>

void main()

{

 int n1,n2,x,n,d,i;d=0;

 char s1[100],s2[100];

 printf("nhap vao xau1:");gets(s1);

 printf("nhap vao xau2:");gets(s2);

 n1=strlen(s1);

 n2=strlen(s2);

 n=n1>n2?n2:n1;

 if(strcmp(s1,s2)==0)

             printf("hai xau bang nhau !");

 else

             {

                        printf("hai xau khong bang nhau");

                for(i=0;i<n;i++)

                                    {

                                                if(s1[i]!=s2[i])

                                                            {

                                                                        x=i;

                                                                        break; 

                                                            }

                                                else

                                                            {

                                                 d++;

                                                }

                                    }

                        if(d==n)

                                    printf("

vi tri khac nhau dau tien la : %d",d+1);

                        else

                                    printf("vi tri khac nhau la: %d",x+1);

//ghep xau

printf("

xau ghep la:");

                        puts(strcat(s1,s2));

            getch();

            }

}

Bài 4 : viết chương trình nhập vào 1 xâu kt xem xâu đó có đối xứng hay ko

#include<stdio.h>

#include<conio.h>

#include<string.h>

 void main()

             {

       char s[100];

               int i,d,n;

               printf("

nhap vao xau :");

               gets(s);

               n=strlen(s);

               d=0;

                for(i=0;i<n/2;i++)

                                    if (s[i]==s[n-1-i])

                                                d++;

                                    if(d==n/2)

                                                printf("

chuoi doi xung");

                                    else

                                                printf("chuoi khong doi xung");

                                    getch();

 }

Bài 5 : viết ct nhập vào 2 xâu ,ghép 2 xâu lại thành một xâu mới

#include<stdio.h>

#include<conio.h>

#include<string.h>

void main()

{

   char s1[100],s2[100];

    int n,d,i=0,j=0;

    printf("

nhao vao chuoi 1:");

     gets(s1);

             n=strlen(s1);

     printf("

nhao vao chuoi 2:");

     gets(s2);

             n=strlen(s2);

             while(s1[i])

                         i++;

     while(s1[i++]=s2[j++]);

   puts(s1);

 getch();

}

Bài 7:

Nhập vào 1 xâu sau đó nhạp vào 1 ký tự bất kỳ kiểm tra xâu dó có ? ký tự = ký tự vừa nhập vào xóa tất cả các ý tự đó in kết quả ra màn hình.

#include<stdio.h>

#include<conio.h>

#include<string.h>

void main()

{

            char s[100];

            int i,j,n,d,kt;

            printf("Nhap vao 1 xau: ");gets(s);

            n= strlen(s);

            printf("Xau vua nhap la: ");puts(s);

            printf("Nhap vao 1 ky tu bat ky: ");kt=getch();

            printf("

Ky tu vua nhap vao la: %c",kt);

            d=0;

    for( i = 0; i<=n; i++ )

        if( s[i] == kt )

        {

                                    d=d+1;

            j = i-1;

            do

            {

                j++;

                s[j] = s[j+1];

            }

            while( s[j] != '\0' );

        }

                        printf("

Co %d ky tu trong xau giong voi ky tu vua nhap vao!",d);

                        printf("

Xau sau khi xoa la: ");puts(s);

                        getch();

}

Bạn đang đọc truyện trên: Truyen2U.Pro

#duy