1. Trang chủ
  2. » Giáo án - Bài giảng

Bài tập C

12 188 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 82,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

bài tập C

Trang 1

LẬP TRÌNH C

1 Bài tập mảng

* Tạo các hàm

#include <stdio.h>

-Nhập -void Input(int *p, int n){

int i;

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

printf("nhap phan tu thu %i: ",i);

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

}

}

-In -void Display(int *p, int n){

int i;

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

printf("%5d",p[i]);

printf("\n");

}

-Sắp xếp tăng dần/giảm dần -void Sort(int *p, int n, int d){

int i, j, tg;

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

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

if(d*p[i]>d*p[j]){

tg = p[i];

p[i] = p[j];

p[j] = tg;

} }

-Tìm phần tử lớn nhất/nhỏ nhất -int Maxmin(nhất -int *p, nhất -int n, nhất -int d){

int temp, i;

temp = p[0];

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

if(d*p[i]>d*temp) temp = p[i];

return temp;

}

-Tính tổng các phần tử trong mảng -int Sum(mảng -int *p, mảng -int n){

Trang 2

int s=0,i;

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

s+=p[i];

return s;

}

-Tính trung bình giá trị các phần tử -float Average(int *p, int n){

int s=0,i;

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

s+=p[i];

return (float)s/n;

}

-Tìm phần tử x có trong mảng không -int Search(không -int *p, không -int n, không -int vt, không -int x){

int i;

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

if(p[i]==x)

return i;

return -1;

}

-Xóa phần tử x có trong mảng -int Delete(mảng -int *p, mảng -int *n, mảng -int vt, mảng -int x){

int i;

vt = Search(p,*n,vt,x);

if(vt>-1){

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

p[i] = p[i+1];

*n = *n - 1;

}

return vt;

}

-Chèn phần tử x vào mảng -void Insert(int *p, int *n, int x){

p[*n] = x;

*n = *n + 1;

}

-Thay thế phần tử x bằng phần tử y -void Replace(int *p, int n, int x, int y){

int i;

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

Trang 3

if(p[i]==x) p[i]=y;

}

2 Kiểm tra xem a,b,c có phải là 3 cạnh của tam giác không?

#include <stdio.h>

#include <math.h>

void main (void)

{

int a,b,c;

printf("nhap vao do dai 3 canh:");

scanf("%d%d%d",&a,&b,&c);

if(a<b+c && b<a+c && c<b+a){

printf("%2d%2d%2d la 3 canh cua tam giac\n",a,b,c); if(a==b && b==c && c==a)

printf("tam giac deu\n");

else

if(a==b || a==c || c==b)

printf(" tam giac can\n");

else

printf("tam giac thuong\n");

}

else

printf("khong phai 3 canh tam giac\n");

}

3 Hiển thị trên màn hình Mã|Ký tự bảng mã ASCII

#include <stdio.h>

#include <conio.h>

void main (void){

int ch;

for(ch=0; ch<=225;ch++

){

printf("%c %d\n",ch,ch);

if(ch % 22==0)

getch();

}

}

4

#include <stdio.h>

#include <math.h>

void main (void){

Trang 4

long n,i;

float s;

printf("Nhap vao so nguyen duong N:"); scanf("%ld",&n);

s=0;

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

s = s+i*i;

printf("s = %f",sqrt(s));

}

5

#include <stdio.h>

#include <math.h>

void main (void){

int i,n,s;

printf(" nhap vao so nguyen duong n:"); scanf("%d",&n);

while(n<=0){

printf("nhap lai");

scanf("%d",&n);

}

s = 0;

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

if(i%2==1)

s = s+(2*i+1)*(2*i+1);

printf("GTBT la: %d\n",s);

}

6 Tính n!

#include <stdio.h>

#include <math.h>

void main (void){

int n,s,i;

printf("nhap vao N:");

scanf("%d",&n);

s = 1;

for(i=n;i>=1;i=i-1)

s=s*i;

printf("s= %d\n",s);

}

7 Kiểm tra số nguyên tố?

#include <stdio.h>

Trang 5

#include <math.h>

#include <conio.h>

int n,i,t;

printf("nhap vao so nguyen n:");

scanf("%d",&n);

if (n<2){

printf("nhap lai:");

scanf("%d",&n);

}

else

for (i==2;i<= sqrt(n)){

t = n%i;

if(t!=0)

printf("la so nguyen to:");

else

printf("khong la nguyen to");

}

}

8 Tính biểu thức theo ct Fibonasi

#include <stdio.h>

#include <math.h>

void main(void){

int n,fn,f,s,i;

int f0 = 0,f1 = 1;

printf("nhap vao so N:");

scanf("%d",&n);

while (n<2){

printf("nhap lai:");

scanf("%d",&n);

}

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

fn = f(i-1)+f(i-2);

s = f0+f1+fn;

printf("s= %d",s);

}

-Con trỏ -Tìm

max -#include <stdio.h>

#include <string.h>

Trang 6

void main (void){

int a[100], n, i, max;

printf("n=");

scanf("%d",&n);

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

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

scanf("%d",a+1);

}

max = *a;

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

if(*(a+1)>max)

max=*(a+1);

printf("max=%d",max);

}

-Con trỏ biến

động -#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

void main(void){

int *p,max,n,i;

printf("n=");

scanf("%d",&n);

p = malloc(n*sizeof(int));

if(p==NULL){

printf("Khong cap phat duoc bo nho\n"); getch();

exit(0);

}

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

printf("Nhap phan tu thu %d:",i);

scanf("%d",&p+i);

}

max = *p;

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

if(*(p+i) > max)

max = *(p+i);

printf("max=%d\n",max);

free(p);

}

Trang 7

- Hàm main –

mảng -#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include "array.h"

void main(void){

int a[100], n, temp, key, d, tong, vt, x, y;

float tb;

do{

system("cls");

printf("1 Nhap vao day so.\n");

printf("2 In day so.\n");

printf("3 Sap xep day so.\n");

printf("4 Tim so lon nhat/nho nhat day so.\n");

printf("5 Tong cac phan tu trong day so.\n");

printf("6 Trung binh cac phan tu trong day so.\n");

printf("7 Tim mot phan tu trong day so.\n");

printf("8 Tim tat ca phan tu trong day so.\n");

printf("9 Xoa mot phan tu trong day so.\n");

printf("A Xoa tat ca phan tu trong day so.\n");

printf("B Chen mot phan tu vao cuoi day so.\n");

printf("C Tim kiem va thay the phan tu trong day so.\n"); printf("Q Thoat khoi chuong trinh.\n");

key = getch();

switch(key){

case '1':

system("cls");

printf("Nhap so phan tu cua day: ");

scanf("%d",&n);

Input(a,n);

printf("Da nhap xong!\n");

getch();

break;

case '2':

system("cls");

printf("Cac phan tu cua day:\n");

Display(a,n);

getch();

break;

Trang 8

case '3':

system("cls");

printf("Sap xep tang (1)/ sap xep giam (-1)? ");

scanf("%d",&d);

Sort(a,n,d);

printf("Day da sap xep xong!\n");

getch();

break;

case '4':

system("cls");

printf("Tim so lon nhat (1)/ so nho nhat (-1)? ");

scanf("%d",&d);

temp = Maxmin(a,n,d);

printf("So can tim: %d\n",temp);

getch();

break;

case '5':

system("cls");

tong = Sum(a,n);

printf("Tong cac phan tu trong day: %d\n",tong);

getch();

break;

case '6':

system("cls");

tb = Average(a,n);

printf("Trung binh cac phan tu trong day: %0.2f\n",tb); getch();

break;

case '7':

system("cls");

printf("Nhap phan tu can tim: ");

scanf("%d",&x);

vt = Search(a,n,0,x);

if(vt>-1)

printf("Tim thay phan tu %d tai vi tri %d\n",x,vt); else

printf("Khong tim thay\n");

getch();

break;

case '8':

Trang 9

printf("Nhap phan tu can tim: "); scanf("%d",&x);

vt = Search(a,n,0,x);

if(vt==-1)

printf("Khong tim thay\n"); else{

printf("Cac vi tri tim thay:\n"); while(vt>-1){

printf("%6d",vt);

vt = Search(a,n,vt+1,x); }

}

getch();

break;

case '9':

system("cls");

printf("Nhap phan tu can xoa: "); scanf("%d",&x);

vt = Delete(a,&n,0,x);

if(vt==-1)

printf("Khong tim thay\n"); else

printf("Da xoa xong!\n"); getch();

break;

case 'A':

case 'a':

system("cls");

printf("Nhap phan tu can xoa: "); scanf("%d",&x);

vt = Delete(a,&n,0,x);

if(vt==-1)

printf("Khong tim thay\n"); else{

while(vt>-1)

vt = Delete(a,&n,vt,x); printf("Da xoa xong!\n"); }

getch();

Trang 10

case 'B':

case 'b':

system("cls");

printf("Nhap phan tu can chen: ");

scanf("%d",&x);

Insert(a,&n,x);

printf("Da chen xong!\n");

getch();

break;

case 'C':

case 'c':

system("cls");

printf("Nhap phan tu can tim: ");

scanf("%d",&x);

printf("Nhap phan tu can thay the: ");

scanf("%d",&y);

Replace(a,n,x,y);

printf("Da thay the xong!\n");

getch();

break;

case 'Q':

case 'q':

return;

}//end of switch

}while(1); //end of do while

}// end of program

-Chuỗi -Độ dài

chuỗi -int Len(char *s){

int i=0;

while(s[i]!=0) i++;

return i;

}

-Đổi thường thành hoa -void Upper(char *s){

int i=0;

while(s[i]!=0 && s[i]>='a' && s[i]<='z'){

s[i] = s[i] - 32;

Trang 11

}

}

-Đổi hoa thành thường

-void Lower(char *s){

int i=0;

while(s[i]!=0 && s[i]>='A' && s[i]<='Z'){

s[i] = s[i] + 32;

i++;

}

}

-Xóa khoảng trống phía bên phải -void RTrim(char *s){

while(s[Len(s)-1]==32) s[Len(s)-1] = 0;

}

-Xóa khoảng trống phía bên trái -void LTrim(char *s){

int i;

while(s[0]==32)

for(i=0; i<Len(s); i++)

s[i] = s[i+1];

}

-Xóa khoảng trống

giữa -void MTrim(char *s){

int i, n, j;

n = Len(s);

for(i=0; i<n; )

if(s[i]==32 && s[i+1] == 32)

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

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

else

i++;

}

-Thay thế ký

tự -void Replace(char *s, char x, char y){

int i,n;

n = Len(s);

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

if(s[i]==x) s[i]=y;

}

Trang 12

-Hàm

main -#include <stdio.h>

#include "chuoi.h"

void main(void){

char s[100], x, y;

printf("Nhap chuoi: ");

gets(s);

printf("Nhap ki tu can tim: ");

scanf("%c",&x);

fflush(stdin);

printf("Nhap ki tu can thay the: ");

scanf("%c",&y);

Replace(s,x,y);

puts(s);

printf("do dai sau khi xoa: %d\n",Len(s));

}

Ngày đăng: 15/05/2014, 10:14

Xem thêm

TỪ KHÓA LIÊN QUAN

w