1. Trang chủ
  2. » Công Nghệ Thông Tin

Hướng dẫn giải bài tập ngôn ngữ lập trình c

47 16,5K 53
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

Tiêu đề Hướng Dẫn Giải Bài Tập Ngôn Ngữ Lập Trình C
Người hướng dẫn Th.S. Nguyễn Thế Cường
Trường học Đại Học Hàng Hải Việt Nam
Chuyên ngành Ngôn Ngữ Lập Trình C
Thể loại Hướng dẫn
Thành phố Hải Phòng
Định dạng
Số trang 47
Dung lượng 202 KB

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

Nội dung

PHẦN 1. CÂU LỆNH ĐƠN GIẢN scanf, printf Bài 1.01. Lập chương trình khai báo các biến lưu điểm toán, lý, hoá của một học sinh. Nhập vào các điểm số đó và đưa ra màn hình điểm tổng và điểm trung bình cộng của 3 môn học. Bài 1.02. Lập chương trình nhập vào số đo của bán kính hình tròn, tính ra chu vi và diện tích của nó rồi đưa kết quả ra màn hình. Cho biết hằng số có tên M_PI lưu giá trị của số  (≈ 3, 14142) được định nghĩa sẵn. Bài 1.03. Lập chương trình nhập vào số đo 2 cạnh chiều dài, chiều rộng của hình chữ nhật. Tính ra chu vi và diện tích của nó rồi đưa kết quả ra màn hình. Bài 1.04. Lập trình nhập vào giá trị của 2 biến kiểu số thực có tên X và Y. Tính và in ra màn hình giá trị của các biểu thức sau: X3 + Y2 - 2.X.Y + 10; sin(X); cos(X + Y); sin(2.X - Y); eX ; … Chú ý in có định dạng. Bài 1.05. Viết chương trình nhập vào 2 số bất kỳ và đổi giá trị của chúng cho nhau. In các số trước và sau khi đổi giá trị ra màn hình (thử chương trình với 2 cách: dùng biến trung gian và không dùng biến trung gian – cho nhận xét về giới hạn giá trị của 2 biến số trong 2 cách)

Trang 1

PHẦN 1 CÂU LỆNH ĐƠN GIẢN scanf, printf

Bài 1.01 Lập chương trình khai báo các biến lưu điểm toán, lý, hoá của một

học sinh Nhập vào các điểm số đó và đưa ra màn hình điểm tổng và điểmtrung bình cộng của 3 môn học

Bài 1.02 Lập chương trình nhập vào số đo của bán kính hình tròn, tính ra chu

vi và diện tích của nó rồi đưa kết quả ra màn hình Cho biết hằng số có tênM_PI lưu giá trị của số  (≈ 3, 14142) được định nghĩa sẵn

Bài 1.03 Lập chương trình nhập vào số đo 2 cạnh chiều dài, chiều rộng của

hình chữ nhật Tính ra chu vi và diện tích của nó rồi đưa kết quả ra màn hình

Bài 1.04 Lập trình nhập vào giá trị của 2 biến kiểu số thực có tên X và Y.

Bài 1.05 Viết chương trình nhập vào 2 số bất kỳ và đổi giá trị của chúng cho

nhau In các số trước và sau khi đổi giá trị ra màn hình (thử chương trình với 2cách: dùng biến trung gian và không dùng biến trung gian – cho nhận xét vềgiới hạn giá trị của 2 biến số trong 2 cách)

Cách 1: Dùng biến trung gian

Cách 2: Không dùng biến trung gian:

a = a + b; b = a - b; a = a - b;

Trang 2

Bài 1.06 Nhập vào một giá trị số nguyên dương N và coi đó là đơn vị giây.

Hãy đổi khoảng thời gian tính bằng giây đó sang A giờ B phút và C giây (vídụ: 1000 giay = 0 gio 16 phut 40 giay)

Bài 1.07 Nhập vào 2 số x và y Tính giá trị xy (x mũ y)

PHẦN 2 CÂU LỆNH CÓ ĐIỀU KIỆN if, switch… case …

Bài 2.01 Lập trình khai báo các biến a, b kiểu số thực Giải phương trình a.x +

b = 0, in kết quả nghiệm ra màn hình

Hướng dẫn giải:

o Nếu b = 0 =>> phương trình vô số nghiệm

o Nếu b != 0 =>> phương trình vô nghiệm

Bài 2.02 Lập chương trình nhập vào một số thực biểu thị số đo của bán kính

hình tròn Kiểm tra xem số đó có là số dương hay không Nếu có, tính ra chu

vi và diện tích của nó rồi đưa kết quả ra màn hình Nếu không thoả mãn Chobiết hằng số có tên M_PI lưu giá trị của số  được định nghĩa sẵn

Bài 2.03 Lập trình khai báo các biến a, b, c kiểu số thực Giải phương trình

1 Nếu a khác 0 thì có nghiệm ngay

Trang 3

2 Ngược lại (a==0)

2.1 Khả năng 1: nếu b==0 thì có vô số nghiệm

2.2 Ngược lại (b khác 0) => phương trình vô nghiệm

Bài 2.04 Lập trình khai báo biến số nguyên a Yêu cầu người dùng nhập vào

giá trị từ 0 10 In ra màn hình cách đọc số đó theo kiểu tiếng Việt không dấu

Ví dụ: Nhập vào số 1 thì in ra MOT, nhập vào 2 in ra HAI

Bài 2.05 Nhập vào tâm đường tròn O(x0, y0), bán kính R Kiểm tra xem 1điểm (x, y) được đưa vào từ bàn phím có nằm trên, trong hoặc ngoài đườngtròn đã cho không?

Bài 2.06 Nhập vào từ bàn phím 3 cạnh a, b, c của hình hộp chữ nhật Kiểm tra

xem có thoả mãn là số dương hay không Nếu thoả mãn, tính thể tích các hình

hộp theo công thức V = a.b.c Hiển thị kết quả lên màn hình, nếu không in ra

thông báo "KHONG THOA MAN LA SO DO CANH HINH HOP"

Bài 2.07 Nhập từ bàn phím các số thực x1, x2, x3, y1, y2, y3 Kiểm tra các

đỉnh có toạ độ (x1, y1), (x2, y2), (x3, y3) có lập thành một tam giác không.Nếu đúng hãy tính: Chu vi, diện tích và các chiều cao tương ứng của tam giác

đó Nếu không thì hiện thông báo lên màn hình (gợi ý Sp.(pa).(pb).(pc)

trong đó p (abc) / 2) và kiểm tra xem tam giác đó là tam giác vuông, cân, đềuhay thường

Bài 2.08 Giải và biện luận phương trình bậc nhất hai ẩn: Các hệ số được nhập

2

1 1

1

c y b x a

c y b x a

Trang 4

Bài 2.09 Lập chương trình yêu cầu người dùng phải nhập vào đúng 4 số

nguyên dương Sau đó tính tổng của 2 số lớn nhất và nhỏ nhất trong 4 số đó Incác kết quả ra màn hình

Bài 2.10 Hãy nhập vào một giá trị là D số KWh điện tiêu thụ trong 1 tháng.

Tính tiền điện cần phải trả biết rằng: D  [0 100] đơn giá 450 đ; D [101 150] đơn giá 600 đ; D  [151 250] đơn giá 800 đ; từ 251 trở lên đơn giá

1000 đ

Bài 2.11 Thực hiện nhập vào 1 số biểu thị năm dương lịch Hãy in ra màn

hình cách đọc năm đó theo âm lịch tương ứng (ví dụ: 2006 – Binh Tuat, 2005– At Dau, …) Biết năm thứ nhất sau công nguyên là năm Tân Dậu (Ví dụ:Nhập vào 1 thì in ra – Tan Dau)

PHẦN 3 CÂU LỆNH LẶP for…, while…, do… while …

Bài 3.01 Viết chương trình khai báo biến nguyên i làm biến chạy In ra màn

hình 10 dòng chữ có nội dung là họ tên sinh viên, lớp, khoa

Bài 3.02 Viết chương trình tính tổng của 100 số nguyên dương đầu tiên (bằng

3 kiểu vòng lặp)

Bài 3.03 Đưa ra bảng nhiệt độ Celcius Tc từ 00C, 10 C, …1000C và nhiệt độ

diễn thành 2 cột tương ứng (chú ý in có định dạng)

Bài 3.04 Tìm các số có 3 chữ số abc, sao cho tổng các lập phương của các chữ

số bằng chính số đó (tức là a3 + b3 + c3 = abc = 100.a + 10.b + c) In các kết quả

ra màn hình

Hướng dẫn giải:

Trang 5

Ba chữ số a, b và c mỗi số có thể chạy từ 0 đến 9 và giá trị là từ 100 đến 999.

Bài 3.05 Viết chương trình in ra bảng cửu chương.

Trang 6

Bài 3.06 Viết chương trình tăng lương Khai báo và nhập vào giá trị cho biến

số luong Thực hiện tăng lương theo quy luật mỗi lần tăng thêm 200 đ, tăngcho đến khi luong ≥ 1500 đ In ra màn hình lương cuối cùng và số lần tăng

Bài 3.07 Lập trình giải bài toán sau: Năm 1992 dân số nước ta là 72 triệu

người, tốc độ tăng dân số là 1, 02 % / năm Hỏi đến năm bao nhiêu thì dân sốnước ta là 80 triệu người (có thể yêu cầu nhập số dân cuối cùng, thay cho 80triệu, rồi in ra số năm)

Bài 3.08 Nhập số thực a từ bàn phím Hãy tìm số tự nhiên N nhỏ nhất thoả

mãn:1 + 1/2 + 1/3 +…+ 1/n > a Cho biết giá trị của tổng trên (chú ý kiểm trađiều kiện 1<= a <= 2, 5)

=>> thuật toán sẽ là cứ cộng dồn theo từng bước cho đến khi tổng > a và

trước mỗi lần tăng thì n ++;

Bài 3.09 Tính gần đúng tổng sau:

! 7

! 5

! 3

! 1

7 5 3

Trang 7

-Bài 3.10 Tính tổng (2 1 1)!

! 5

1

! 3

1 1

(

1

, với 0 < a < 0, 01nhập từ bàn phím

Bài 3.11 Tính gần đúng giá trị của hàm số ex theo công thức:

!

! 3

n

x x

Trang 8

Bài 3.12 Nhập số tự nhiên N từ bàn phím, có kiểm tra điều kiện n<10 Hãy

và n!!= 2.4.6…n khi N chẵn

Bài 3.13 Tính giá trị của biểu thức y = 4x3- 2x2 +5 trong đó giá trị của biến số

x chạy từ -3 đến 1 với bước nhảy 0.1

Bài 3.14 Nhập vào số thực a từ bàn phím Hãy tìm số tự nhiên N nhỏ nhất

thoả mãn: 1/2 + 1/4 + 1/6 + 1/8 + + 1/n > a (mẫu số là số chẵn) Cho biết giátrị của tổng trên

Bài 3.15 Nhập vào từ bàn phím 3 số thực a, b, c Kiểm tra xem chúng có tạo

thành 3 cạnh một tam giác không? Nếu có kiểm tra xem đó là tam giác gì?(vuông, cân, đều, thường) Tính chu vi, diện tích tam giác đó, nếu không hiệnthông báo lên màn hình và yêu cầu nhập lại

Bài 3.16 Số nguyên tố là số chỉ chia hết cho 1 và chính nó Hãy viết chương

trình nhập vào một số nguyên, kiểm tra xem số đó có là số nguyên tố haykhông?

Bài 3.17 Dãy số Fibonaci là dãy số được định nghĩa: F1=F2=1 ; Fn = Fn-1+ Fn- 2

khi N >2 Viết chương trình tìm phần tử thứ N của dãy số Fibonaci với N đượcnhập vào từ bàn phím

Bài 3.18 Thuật toán sau tìm ước chung lớn nhất của 2 số a và b (giả sử a > b) :

UCLN(a, b) = UCLN(b, a-b) Viết chương trình tìm UCLN của 2 số a và bnhập vào từ bàn phím Chương trình cho phép chạy nhiều lần

Trang 9

Bài 3.19 Số "hoàn hảo" là số mà tổng các ước số của nó lại bằng chính nó.

Viết chương trình in ra các số hoàn hảo nhỏ hơn 10.000 ra màn hình Chươngtrình cho phép chạy nhiều lần

Phân tích tổng quan

Bài toán con 1: tìm ước số

Bài toán con 2: tìm tổng các ước

Nếu tổng các ước = chính số đó => số hoàn hảo

Giả sử có số n, thì ước của n chỉ nằm từ 1 đến n/2

=> để tìm ước của n thì dùng biến chạy i từ 1 đến n/2

Nếu n chia hết cho i thì cộng dồn tổng các ước

Sau khi cộng xong, nếu tổng các ước của n bằng chính n thì n là hoàn hảo

// không được cho lệnh tong = 0 ở đây vì mỗi lần thử tính hoàn hảo của n thìphải gán tong = 0 từ đầu

if (n % i==0) tong = tong + i;

//== kiem tra tổng các ước có bằng n hay không?

if(tong == n) thì in ra n là hoàn hảo;

}

Trang 10

Bài 3.20 Lập trình giải phương trình bậc 3 một ẩn số a.x3 + b.x2 + c.x + d = 0bằng phương pháp "chia đôi" Với các hệ số thực a, b, c, d nhập vào từ bànphím (sao cho dễ xác định khoảng nghiệm) Giải phương trình trên sao cho sai

số của nghiệm là nhỏ hơn ss, với ss là biến số thực nhập vào từ bàn phím (0 <

printf(“\nVong lap thu: %d”, k);

printf(“\nBien chay vong for ngoai: i = %d”, i);

printf(“\nBien chay vong for trong: j = %d”, j);

} getch();

} //ket thuc chuong trinh

Trang 11

Bài 3.22 Giải bài toán dân gian sau: "Vừa gà vừa chó Bó lại cho tròn 36 con.

100 chân chẵn Hỏi mấy con chó, mấy con gà ?"

Bài 3.23 Giải bài toán dân gian sau: "Trăm trâu, trăm cỏ Trâu đứng ăn 5.

Trâu nằm ăn 3 Lụ khụ trâu già Ba con một bó Hỏi số trâu mỗi loại ?"

PHẦN 4 KIỂU MẢNG 1 CHIỀU

Sinh giá trị ngẫu nhiên:

Trước khi dùng hàm rand() thì cần có hàm randomize(); để khởi tạo bộ giá trịngẫu nhiên và #include<stdlib.h>

Sinh giá trị ngẫu nhiên cho mảng ta có lệnh sau:

randomize();

for (i=0; i < n; i++) a[i] = rand() % 32676 ;

// chia lấy phần dư cho số nguyên lớn nhất để tránh bị tràn số

Để khởi tạo giá trị ngẫu nhiên từ 0 đến 99 thì ta dùng: rand() % 100

Để khởi tạo giá trị ngẫu nhiên từ -99 đến 99 thì ta dùng: rand() % 200 – 100 ;

Khởi tạo ngẫu nhiên số thực:

tu = rand () % 200;

do

Trang 12

{ mau = rand () % 100 - 50 ;

} while (mau == 0) ;

a[i] = (float) tu / mau ;

Bài 4.01 Nhập vào dãy số thực gồm N phần tử N nhập từ bàn phím Hãy đổi

chỗ: Số lớn nhất cho số bé nhất Cho biết vị trí của các phần tử trên trong dãy

Hướng dẫn giải:

1 Khai báo biến n là chỉ số mảng, mảng số thực float a[]; // cho số phần tử làkhông xác định trước

2 Nhập vào biến n và xin cấp phát bộ nhớ cho mảng n phần tử số thực

3 Với bài toán này, thay vì tìm giá trị max thì ta tìm vị trí của phần tử đạt giátrị max (ký hiệu là vtmax – vị trí max) Khi đó max chính là a[vtmax]

4 Ban đầu ta gán vtmax = 0; // giả sử ban đầu ta coi vị trí 0 đạt max

5 Duyệt từ vị trí 1 đến n-1, nếu thấy a[i] > a[vtmax] thì vtmax = i;

6 Tương tự cho min, ta tìm vtmin

7 In các giá trị vtmax, a[vtmax], vtmin và a[vtmin] ra màn hình

8 Đổi giá trị max và min cho nhau => ta dùng biết trung gian để đổi giá trịa[vtmax] và a[vtmin] cho nhau

9 In mảng kết quả ra màn hình

Bài 4.02 Nhập vào số nguyên N và dãy số a1, a2, …, an Hãy tính trung bình

Trang 13

3 Số a[i] gần tbc nhất nghĩa là độ lệch ss = | a[i] – tbc | đạt min.

a Ban đầu ta gán ss = | a[0] – tbc |; // lệnh thật là ss = fabs( a[0] – tbc );

b Duyệt từ a[1] đến a[n-1] nếu | a[i] – tbc | < ss thì gán lại giá trị ss = |a[i] – tbc | =>> lệnh thật là if ( fabs(a[i] – tbc) < ss ) ss = fabs(a[i] –tbc) ;

4 Tìm vị trí a[i] có độ lệch so với tbc nhỏ nhất bằng cách duyệt từ a[0] đếna[n-1] nếu fabs(a[i]-tbc) == ss thì ta in vị trí và giá trị của a[i] ra màn hình

Bài 4.03 Nhập giá trị hàm số y= x  e xvới 8 giá trị của đối số x (trong đóx[0, 5]) Nhập từ bàn phím Tìm giá trị x mà tại đó hàm số đạt giá trị lớn nhất.Hiển thị giá trị x, y tìm được lên màn hình

Hướng dẫn giải:

Khai báo và nhập vào mảng 8 số thực x[i] Để tìm x[i] sao cho hàmy(x[i]) đạt max => ta khai báo biến vt, ban đầu gán vt = 0; Duyệt từ x[1]đến x[7] nếu y(x[i]) > y(x[vt]) thì vt = i;

// y(x[i]) thực chất chính là sqrt(x[i]) – exp(x[i])

vt = 0;

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

if ( sqrt(x[i]) – exp(x[i]) > sqrt(x[vt]) – exp(x[vt]) ) vt = i ;

Trang 14

In ra giá trị vt, x[vt] và sqrt(x[vt]) – exp(x[vt])

Bài 4.04 Tính tổng: S=X1+X1X2+X1X2X3 +…+X1X2…Xn trong đó N là số tựnhiên (n<10) và Xi (i=1 n) là dãy số thực nhập từ bàn phím

Hướng dẫn giải:

Đây là tổng cộng dồn của tích nhân dồn Ban đầu ta gán tong = 0 và tich

= 1; Trong mỗi vòng lặp, ta nhân dồn tich = tich * x[i]; sau đó cộng dồn tong =tong + tich;

Bài 4.05 (Nhóm 2 & Nhóm 1) Nhập vào số tự nhiên N và dãy số a1, a2, …an.Hãy hiển thị giá trị các biểu thức:

a) a1; a2 + a2; a1+a2+a3; ; a1+a2+…+an.

b) -a1; a1*a2; -a1*a2*a3; ….; (-1)n.a1*a2*…*an.

Hướng dẫn giải:

Câu a)

Lặp lần 1: In ra a[1] =>> tong = a[1] ; // i = 1

Lặp lần 2: In ra a[1] + a[2] =>> Ta cộng dồn tổng của bước trước với a[2]

Lặp lần 3: In ra a[1] + a[2] + a[3] =>> Ta cộng dồn tổng của bước trước vớia[3]

Trang 15

Do là tổng cộng dồn nên ban đầu tong = 0 ; // nếu không khởi tạo, sẽ in ragiá trị bất kỳ (không xác định).

Câu b)

Đây là tích nhân dồn theo từng bước, theo Câu a) ta có: tich = tich * a[i] ;

// ban đầu tich = 1 ;

Bài 4.06 Nhóm 1 & Nhóm 2 Nhập từ bàn phím 10 đỉnh a1, a2, …, a10, trong

đó ai = (xi, yi), i = 1…10 Tính độ dài đoạn thẳng khi biết toạ độ hai điểm đầumút Sau đó tính chu vi đa giác có 10 đỉnh theo đúng thứ tự ở trên Xác địnhcặp đỉnh có khoảng cách lớn nhất

Hướng dẫn giải:

Khai báo 2 mảng số thực lưu tọa độ của 10 đỉnh float x[11], y[11] ; // để

ta tính thứ tự từ x[1] đến x[10], bỏ qua phần tử x[0] và y[0]

Để đo độ dài 10 cạnh, khai báo mảng dd[11] ;

Như vậy, độ dài cạnh 1 là khoảng cách cặp tọa độ (x[1], y[1]) với (x[2],

2 1 2 2

( ] 1

2) + pow(y[1] – y[2], 2) ) ; // chú ý cặp mở đóng ngoặc tương ứng

Độ dài cạnh 2 là khoảng cách cặp tọa độ (x[2], y[2]) với (x[3], y[3]) =>>

2 3 3 2 2

=>> Công thức tổng quát: // có thể cho vào vòng for

dd[i] = sqrt( pow(x[i] – x[i+1], 2) + pow(y[i] – y[i+1], 2) ) ; // i = 1 9

Trang 16

Riêng cạnh thứ 10 thì không theo quy luật trên vì:

2 10 1 2 10

Bài 4.07 (Nhóm 1 & Nhóm 2) Nhập số tự nhiên N và dãy số a1, a2, …an Tìm

số lượng và tổng các thành phần của dãy chia hết cho 5 mà không chia hết cho

phương > X với X nhập từ bàn phím

Bài 4.08 (Nhóm 1 & Nhóm 2) Nhập số tự nhiên N và dãy a1, a2, …an Sau đóthực hiện các công việc sau: Nhập một số tự nhiên Q từ bàn phím Kiểm tra

từ phần tử đó đến cuối dãy Nếu không thì hiện thông báo lên màn hình Tìmtất cả các giá trị ai[-10, 10] và thay bằng 9

Bài 4.09 Nhập số tự nhiên N và dãy a1, a2, …an Hãy tìm : max(a2, a4, a6, …) +min(a1, a3, a5, …) và max (a1, a2, …, an) Hiển thị kết quả lên màn hình

Hướng dẫn giải:

Trang 17

Thực hiện duyệt từ đầu đến cuối mảng, nếu tìm max thì theo chỉ số chẵn (Ixuất phát = 0; bước lặp là i = i + 2) nếu tìm min thì xuất phát i = 1 và bước lặp

i = i + 2;

Tìm max cả mảng (maxall) thì ta duyệt từ đầu đến cuối mảng, bước lặp i++;

Trang 18

Bài 4.10 Phát sinh ngẫu nhiên hai véc tơ X = (x1, x2, …, xn), Y = (y1, y2, …yn),trong đó N nguyên nhập từ bàn phím và 0 < N < 30 Tìm véctơ tổng và tínhtích vô hướng của hai véctơ trên Tìm tất cả các số nguyên tố trong véctơ tổngtrên Hiện các kết quả lên màn hình.

Hướng dẫn giải:

Khai báo 2 mảng x chỉ vector 1 và y chỉ vector 2, vttong Các giá trị x[0], x[1],

… x[n-1] là tọa độ của vector x Tương tự cho vector y

Tọa độ vector tổng: vttong[i] = x[i] + y[i] ;

Tích vô hướng là 1 giá trị: tvh = x[0].y[0] + x[1].y[1] + … + x[n-1].y[n-1] ;Khai báo biến dem để đếm các số nguyên tố trong tọa độ vector tổng

Kiểm tra từng tọa độ của vector tổng, nếu giá trị vttong[i] nào là nguyên tố thìtăng biến đếm thêm 1 và in số đó ra màn hình

Với mỗi giá trị vttong[i] ta xét như sau:

 // Nếu vttong[i] <= 3 thì đương nhiên là số nguyên tố =>> ta chỉ xét vớicác giá trị >= 4 trở đi

Bài 4.11 Phát sinh ngẫu nhiên toạ độ hai véc tơ X = (x1, x2, …, xn), Y = (y1,

Trang 19

(Z=(z1, z2, …zn)) theo công thức zi = xi+yi (i = 1 n) Tính tích vô hướng của haivéc tơ X và Y theo công thức X Y = x1y1+x2y2+…+xnyn.

Bài 4.12 Nhập từ bàn phím số tự nhiên N và hai dãy số nguyên a1, a2, …, an ;

b1 , b2, …, bn, (với ai  aj , bibj, ij và (i, j =1…n) Tìm giao của hai dãy trên.Tìm hợp của hai dãy trên (các số bằng nhau chỉ lấy 1 lần)

Bài 4.13 Nhập số tự nhiên N và dãy a1, a2, …, an, dãy ai (i = 1…n) được nhập

ai[x, y], x < y là các số thực nhập từ bàn phím

Bài 4.14 Phát sinh ngẫu nhiên một dãy số nguyên dương N phần tử, N nhập từ

bàn phím và 0 < N < 30 Sắp xếp chúng theo thứ tự tăng dần Hiển thị cả haidãy số lên màn hình (dãy ban đầu và dãy đã sắp xếp)

Bài 4.15 Tìm giá trị nhỏ thứ k của dãy số x1, x2…, xn Trong đó: n>1 là số tự

Hiển thị các kết quả lên màn hình

Trang 20

Bài 4.16 Phát sinh ngẫu nhiên N số nguyên dương, N là số tự nhiên nhỏ hơn

100 được nhập từ bàn phím Đếm những số chẵn và cho chúng vào mảng a.

Sắp xếp những số lẻ theo thứ tự tăng dần In các kết quả ra màn hình

Hướng dẫn giải:

Số x là chẵn là số mà x % 2 == 0

Duyệt từ đầu mảng đến cuối mảng x, nếu x[i] % 2 == 0 thì ta cho x[i] vàomảng a, nghĩa là a[j] = x[i]

Số phần tử ở mảng chẵn a không đồng nhất với số phần tử ở mảng x ban đầu

=>> Mỗi khi gặp x[i] chẵn thì ta phải tăng biến đếm của mảng a lên

j = -1; // vì chỉ số mảng tính từ 0, ta coi j = -1 là không có phần tử nào

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

Trang 21

Bài 4.17 Phát sinh N số nguyên, N nhập từ bàn phím và 0 < N < 50 Đếm các

số âm và cho chúng vào Sắp xếp các số dương tăng dần và ghi chúng vào

mảng duong.

Bài 4.18 Phát sinh ngẫu nhiên một dãy số nguyên dương N phần tử, N nhập từ

bàn phím và 0 < N < 70 Sắp xếp chúng theo trật tự mới sao cho các số lẻ vàcác số chẵn xen kẽ nhau cho tới khi không còn cắc phần tử chẵn, lẻ tương ứngthì đoạn cuối của dãy là các phần tử hoặc cùng chẵn hoặc cùng lẻ Hiển thị cảhai dãy số lên màn hình (dãy ban đầu và dãy đã sắp xếp)

Trang 22

} if(dc>dl)socap=dl;

Trang 23

//======In mang ket qua======//

printf("\nDay da sap xep la: ");

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

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

getch();

}

Bài 4.19 Phát sinh ngẫu nhiên một dãy số nguyên N phần tử, N nhập từ bàn

phím và 0 < N < 30 Sắp xếp dãy số trên theo trật tự các số âm đứng trước, các

số dương đứng sau sao cho trật tự giữa các số âm (dương) với nhau trước vàsau khi sắp xếp là không đổi Tính trung bình cộng các số âm nếu có

Ngày đăng: 19/08/2013, 10:41

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w