mảng,xâu,cấu trúc
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: AzTruyen.Top