PDA

View Full Version : Đề C giành cho người mới học đây



meo_con200220032004
24-02-2009, 06:17 PM
ai lam dc thì post len nha ;hix!!!minh cũng mới học nên nhờ mọi người chỉ bảo thêm nha.0:) 0:) 0:)
thanks mọi người nhiều 0:) 0:) 0:) 0:) 0:)

1. Nhập vào 4 số thực. Tìm giá trị lớn nhất, nhỏ nhất trong bốn số đó bằng cách sử dụng biểu thức điều kiện

2. Viết chương trình in ra bảng mã ASCII, trong đó mỗi cột bao gồm ký tự và mã của ký tự đó dưới dạng thập phân (thập lục phân, bát phân)

3. Nhập vào ba số thực a, b, c. Kiểm tra 3 số đó có lập thành ba cạnh của một tam giác không. Sau đó xác định xem tam giác tương ứng có tính chất gì: đều, vuông cân, cân, vuông hay thường.

4. Viết chương trình nhập vào một số nguyên dương, kiểm tra xem nó có phải số nguyên tố hay không.

5. Nhập vào một số nguyên dương n, liệt kê các số nguyên tố nhỏ hơn n.

6. Nhập vào số nguyên dương, kiểm tra xem số đó có phải là số hoàn thiện hay không? Số hoàn thiện là số có giá trị bằng tổng tất cả các ước số của nó nhỏ hơn nó.

7. Nhập vào một số nguyên dương n, liệt kê các số hoàn thiện nhỏ hơn n.

8. Nhập vào các số thực cho đến khi gặp số 0, in ra giá trị lớn nhất trong số các số vừa nhập.

9. Nhập vào các số nguyên cho đến khi gặp số 0, in ra màn hình giá trị lớn nhất trong số các số chia hết cho 5 vừa nhập được.

10. Nhập vào số nguyên dương n, in ra số theo thứ tự ngược lại.
Ví dụ: nhập số n = 1234, kết quả in ra màn hình là 4321

11. Nhập vào một số nguyên dương. In ra tổng các chữ số của số đó.
Ví dụ: nhập số n = 2313, phải in ra màn hình giá trị 9.

12. Nhập tử số và mẫu số của một phân số, tìm dạng tối giản của phân số đó.

13. Viết chương trình in bảng cửu chương lên màn hình.

14. Cho tổng:

S= 1+ x/1! + (x^2)/2! +..+(x^n)/n!

a) Nhập số thực x, số nguyên n. Tính S
b) Nhập số thực x, tính tổng S cho đến khi trị tuyệt đối của số hạng bé hơn sai số epsilon cho trước (phải nhập sai số)
15. Nhập số thực x, số nguyên n. Tính tổng

S=x - (x^3)/3! + (x^5)/5! -...+((-1^n )x^(2n+1) )/(2n+1)!

16. Nhập x bằng độ, chuyển qua radian rồi tính tổng

S= 1- (x^2)/2! + (x^4)/4! -...+ ((-1^n).(x^2n))/(2n)!

cho đến khi trị tuyệt đối của số hạng bé hơn sai số cho trước (phải nhập sai số).
17. Lập chương trình giải và biện luận hệ phương trình:
ax+by=c
dx+ey=f
các hệ số a, b, c, d, e, f nhập từ bàn phím.
18. Viết chương trình nhập các hệ số a, b, c, d của hai số phức
z1=a + bi
z2= c + di
và tính tổng, hiệu, tích, thương của hai số phức đó.

19. Lập chương trình để:
- Nhập một dãy số từ bàn phím, số phần tử n được nhập từ bàn phím
- Tính trung bình cộng của các số dương và trung bình cộng của các số âm trong dãy số trên

20. Viết chương trình để tính tổ hợp, chỉnh hợp chập k của n. (k<=n)

21. Lập chương trình tính
S = (a12+a22+…+an2)0.5
trong đó n và a1, a2, …, an nhập từ bàn phím.

22. Cần có tổng 200000 đ từ ba loại tiền với mệnh giá 1000 đ, 2000 đ và 5000 đ. Lập chương trình để tìm tất cả các phương án có thể.


còn nữa ..

trubavuong
24-02-2009, 06:25 PM
Các bài tập này khá cơ bản và cũng rất hay đó. Nếu bạn muốn làm được chúng thì cũng không có gì khó : mua sách và đọc rồi thực hành, bí quá thì search trong diễn đàn hoặc lên google là okie ngay.

Thân ái, trubavuong :D

huynguyen
24-02-2009, 06:29 PM
Đề bài nhìn quen quen, nằm trong cuốn giáo trình của 1 trường Đại học Cao đẳng nào đó thì phải.

trubavuong
24-02-2009, 06:33 PM
Trên mạng cũng có nhiều. Lần trước mình cũng từng thấy mấy bài tương tự ở mấy trang web.

meo_con200220032004
24-02-2009, 08:14 PM
tui mới học C dc hon 1 tuần khoảng 6 tiết gì đấy , chưa kịp làm quen mà cô dạu C dã cho một đống bài tập này , hix, làm dc co mấy bài thui , còn lại nhờ mọi người giúp và chỉ giáo thêm cho tui với.
mới làm quen nên còn nhiều cái không bít, mọi người cùng nhau trao đổi nha .
0:)0:)0:)

drak77
24-02-2009, 08:22 PM
các bài này giống trong quyển Bài tập ngôn ngữ C từ A->Z của Huỳnh Tấn Dũng Hoàng Đức Hải .

QuangHoang
24-02-2009, 09:18 PM
He he đó là đề bài tập Tuần 2-3 trường Hoàng. Beginner làm nhiều cho tiến bộ.
Code Hoàng đã làm tại đây (http://svniem.org/showthread.php?goto=newpost&t=61).

nvthaovn
25-02-2009, 08:05 PM
Mình cũng đang học C++
hôm trước lớp đứa bạn mình cũng có một bài tập giống 1 câu mà bạn đưa lên . mình thử làm thế này mong mọi người góp ý:

//================================================== ==============
#include<iostream>
#include<cmath>
using namespace std ;

int main()
{
cout << "kiem tra tinh chat tam giac \n" ;
float a, b ,c ;
string d;
cout << "nhap a, b , c \n" ;
cin >> a >> b >> c;
if (a+b <=c || fabs(a-b) >=c ) //dòng này mình đã sửa nhờ góp ý của bạn trubavuong thank !!!
cout << " day khong phai la ba canh cua mot tam giac ";
else
{
cout << " day chinh la 3 canh cua mot tam giac " ;
if ( ((a*a)==(b*b+c*c))||((a*a)==fabs(b*b-c*c))) cout << "vuong " ;
else d = "binh thuong";
if (a == b && b== c) cout << "deu " << endl;
else if (a==b || b==c || a==c ) cout << "can" ;
else cout << d;
}
cout << endl;
system ("pause") ;
}

//========================== The end ============================

Huyền Thoại Độc
26-02-2009, 09:20 AM
ghe qua cơ.mình mới học chưa bít ji cả

trubavuong
26-02-2009, 09:31 AM
Mình thấy bài kiểm tra tính chất tam giác của nvthaovn có vấn đề chút xíu.
Đó là chỗ này

if (a+b <=c || a-b >=c )
Có vẻ hơi thiếu điều kiện thì phải. Nếu (a+b <=c || a-b >=c ) thì đúng là không phải tam giác nhưng đó là điều kiện cần mà không phải là điều kiện đủ để khẳng định đây có phải tam giác hay không.

VD: a=4,b=5,c=1---> không phải tam giác nhưng a+b>c && a-b <c !!!

Bạn hãy xem xét và tự sửa lại cho đúng nhé.

chelx
26-02-2009, 02:53 PM
cho mình hỏi trubavuong cái.ở bài 21 a12 a22 ...an2
thì 2 là cái gì vậy mình không hiểu

chelx
26-02-2009, 03:44 PM
Mình thấy bài kiểm tra tính chất tam giác của nvthaovn có vấn đề chút xíu.
Đó là chỗ này

Có vẻ hơi thiếu điều kiện thì phải. Nếu (a+b <=c || a-b >=c ) thì đúng là không phải tam giác nhưng đó là điều kiện cần mà không phải là điều kiện đủ để khẳng định đây có phải tam giác hay không.

VD: a=4,b=5,c=1---> không phải tam giác nhưng a+b>c && a-b <c !!!

Bạn hãy xem xét và tự sửa lại cho đúng nhé.

mình làm thế này có đúng không
mình sẽ khai báo mảng một chiều thay vì 3 số thực
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
if(a[i]<=a[j])
{ a[i]=c;
a[i]=a[j];
a[j]=c;}
if (a+b <=c || a-b >=c) printf("khong phai tam giac");
else printf(" la tam giac");

trubavuong
26-02-2009, 03:52 PM
cho mình hỏi trubavuong cái.ở bài 21 a12 a22 ...an2
thì 2 là cái gì vậy mình không hiểu
Mình đoán đó là a1^2, a2^2....(bình phương đó bạn)

chelx
26-02-2009, 03:58 PM
bài 5 với bài 7 chắc tương tự nhau .mình chưa biết làm .Pro giúp mình với

trubavuong
26-02-2009, 04:03 PM
mình làm thế này có đúng không
mình sẽ khai báo mảng một chiều thay vì 3 số thực
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
if(a[i]<=a[j])
{ a[i]=c;
a[i]=a[j];
a[j]=c;}
if (a+b <=c || a-b >=c) printf("khong phai tam giac");
else printf(" la tam giac");
Code của bạn mình thấy không chính xác lắm. Bạn đã dùng mảng thì lấy đâu ra a,b????? Với lại vòng lặp của bạn chưa tối ưu và hình như là bạn sắp xếp mảng giảm dần thì phải. Nếu bạn coi a=a[0],b=a[1],c=a[2] thì cái điều kiện kia của bạn cũng không đúng cho lắm.

Cách đơn giản hơn như sau :

if(a+b<=c||a+c<=b||b+c<=a) printf("Không phải tam giác");
else printf("Đúng là tam giác rồi, hihi sướng quá đi mất thôi ");

trubavuong
26-02-2009, 04:14 PM
Bài 5:

#include <stdio.h>
#include <conio.h>
#include <math.h>
int ktnt(int n)
{
int k=1;
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
k=0;break;
}
}
return k;
}
main()
{
int n;
printf("\nNhap n = ");
scanf("%d",&n);
for(int i=2;i<n;i++)
{
if(ktnt(i)==1) printf("%d\t",i);
}
getch();
}

Bài 7:

#include <stdio.h>
#include <conio.h>
#include <math.h>
int ktht(int n)
{
int tong=0;
for(int i=1;i<=n/2;i++)
{
if(n%i==0) tong+=i;
}
if(tong==n) return 1;
else return 0;
}

main()
{
int n,tong=0;
printf("Nhap n = ");
scanf("%d",&n);
for(int i=1;i<n;i++)
if(ktht(i)) printf("%d\t");
getch();
}

chelx
26-02-2009, 04:19 PM
Code của bạn mình thấy không chính xác lắm. Bạn đã dùng mảng thì lấy đâu ra a,b????? Với lại vòng lặp của bạn chưa tối ưu và hình như là bạn sắp xếp mảng giảm dần thì phải. Nếu bạn coi a=a[0],b=a[1],c=a[2] thì cái điều kiện kia của bạn cũng không đúng cho lắm.

Cách đơn giản hơn như sau :

if(a+b<=c||a+c<=b||b+c<=a) printf("Không phải tam giác");
else printf("Đúng là tam giác rồi, hihi sướng quá đi mất thôi ");

ừ nhỉ .còn phải luyen tập nhìu.:(|

chelx
26-02-2009, 06:27 PM
mình chưa hiểu lắm về hàm con và con trỏ.
khai báo con trỏ thay vì khai báo mảng là thế nào ấy nhỉ
trubavuong chi mình nhé

trubavuong
26-02-2009, 06:40 PM
Hàm con gồm có tên hàm và các biến đủ để thực hiện các phép toán trong nó (có thể có biến hoặc không).
VD: int kiem_tra_nguyen_to(int n) : hàm chỉ phụ thuộc 1 biến n
float f(int x,float y): hàm phụ thuộc 2 biến x,y
void in_ra_cac_so(): hàm không có biến
Lưu ý: biến còn được gọi là tham số.

Còn con trỏ thì nó chứa địa chỉ, cũng có thể nói nó là 1 loại "mảng", nhưng mà nó lại không cần khai báo số lượng phần tử của nó như mảng.
VD: int a[100]:mảng 100 số nguyên
con trỏ: int *p


Đấy, đại khái là vậy.

chelx
27-02-2009, 09:33 AM
như vậy thì dùng con trỏ có giống mảng không?
vi dụ: với mảng có thể chỉ phần tử a[i][j] còn con trỏ thì sao?
tiếp nữa muốn khai báo mảng động thì làm thế nào?
giúp mình nhé

nvthaovn
27-02-2009, 10:13 AM
Mình thấy bài kiểm tra tính chất tam giác của nvthaovn có vấn đề chút xíu.
Đó là chỗ này

Có vẻ hơi thiếu điều kiện thì phải. Nếu (a+b <=c || a-b >=c ) thì đúng là không phải tam giác nhưng đó là điều kiện cần mà không phải là điều kiện đủ để khẳng định đây có phải tam giác hay không.
Bạn hãy xem xét và tự sửa lại cho đúng nhé.

Cảm ơn bạn đã góp ý.
Đúng là đã sai thật rồi ):)T . Minh sửa thế này không biết còn gì thiếu sót không .

(a+b <= c || fabs(a-b) >= c )
Một lần nữa cảm ơn bạn trubavuong
Mình mới bắt đầu học rất mong được mọi người chỉ bảo !!!
:(| :(| :(| :(| :(| :(| :(| :(| :(| :(| :(| :(| :(| :(| :(| :(|

trubavuong
27-02-2009, 06:46 PM
như vậy thì dùng con trỏ có giống mảng không?
vi dụ: với mảng có thể chỉ phần tử a[i][j] còn con trỏ thì sao?
tiếp nữa muốn khai báo mảng động thì làm thế nào?
giúp mình nhé
Con trỏ khá giống mảng, cụ thể hơn nó chính là mảng động.
Mảng chỉ phần tử a[i][j] thì con trỏ cũng làm được, chỉ cần khai báo int **p rồi gọi phần tử của nó là p[i][j].
Cấp phát bộ nhớ cho mảng động có thể dùng hàm malloc(số phần tử*kích thước) hoặc hàm calloc(số phần tử,kích thước) là được.


Cảm ơn bạn đã góp ý.
Đúng là đã sai thật rồi ):)T . Minh sửa thế này không biết còn gì thiếu sót không .

(a+b <= c || fabs(a-b) >= c )
Một lần nữa cảm ơn bạn trubavuong
Mình mới bắt đầu học rất mong được mọi người chỉ bảo !!!
:(| :(| :(| :(| :(| :(| :(| :(| :(| :(| :(| :(| :(| :(| :(| :(|
Được đó bạn, thế nhé!

ghost1909
01-03-2009, 10:57 AM
cha` mih cũng mới bắt đầu học C thui.. hihix ~:>
thấy các bạn học giỏi thật nha...^^
cái đề 22 câu là đề trường tớ này
có khi tớ và quanghoang cùng trường nhỉ
haha

QuangHoang
01-03-2009, 11:51 PM
Con trỏ khá giống mảng, cụ thể hơn nó chính là mảng động.
Mảng chỉ phần tử a[i][j] thì con trỏ cũng làm được, chỉ cần khai báo int **p rồi gọi phần tử của nó là p[i][j].
Cấp phát bộ nhớ cho mảng động có thể dùng hàm malloc(số phần tử*kích thước) hoặc hàm calloc(số phần tử,kích thước) là được.
Hài thế, sao lại nói ngược vậy, mảng là con trỏ hằng chứ :D


cha` mih cũng mới bắt đầu học C thui.. hihix ~:>
thấy các bạn học giỏi thật nha...^^
cái đề 22 câu là đề trường tớ này
có khi tớ và quanghoang cùng trường nhỉ
haha
Nhận mặt được 3 mem trên này ở trường mình.

chelx
10-03-2009, 04:40 PM
mình làm bài nhập số có 4 chữ số và in tổng các chữ số như sau
#include"stdio.h"
#include"conio.h"
#include"math.h"

void main()
{clrscr();
int so,d=0,a=0;
do {
printf("nhap so co 4 chu so");
scanf("%d",&so);
}
while(so<1000&&so>9999) ;
for (int i=4;i>=1;i--)
{ d+=so/pow(10,i-1);
a=so/pow(10,i-1);
so=so-a*pow(10,i-1);
}
printf("tong cac chu so la %d",d);
getch();
}

mình đang nghĩ về khả năng nhập số có số chữ số bất kì nhưng khó quá. tiện thể pro chỉ mình cách làm theo kiểu ép kiểu ấy

trubavuong
10-03-2009, 05:37 PM
Tìm tổng các chữ số của số có n chữ số bất kỳ :

#include <conio.h>
#include <stdio.h>
#include <string.h>
int doi(char c)
{
return c>=48&&c<=57? c-48 : 0;
}
main()
{
char *a;int tong=0;
printf("Nhap N = ");
gets(a);
for(int i=0;i<strlen(a);i++)
tong+=doi(a[i]);
printf("Tong cac chu so cua %s la : %d\n",a,tong);
getch();
}

chelx
11-03-2009, 07:44 PM
thế còn cách làm tính tổng cua số có số chữ số bất kì nhưng không ép kiểu
tiện thể hỏi luôn : không cần cấp phát bộ nhớ động cho con trỏ à. vậy thì con trỏ sẽ được cấp phát ? phần tử??? (thực sự con trỏ củ chuối)

aloatist
11-03-2009, 08:05 PM
giúp em với giả bài c này với !!!!!!!!! em là người mới vào nghề xin giúp giùm!!!!!!!!
ĐỀ:hãy tìm các số hạnh phúc có 6 chữ số. Một số N là số hạnh phúc nếu tổng 3 số đầu bằng tổng 3 số cuối?

trubavuong
11-03-2009, 08:34 PM
Đừng choáng nhé:

#include <conio.h>
#include <stdio.h>
main()
{
printf("Cac so hanh phuc la :\n");
for(int a=1;a<=9;a++)
for(int b=0;b<=9;b++)
for(int c=0;c<=9;c++)
for(int d=0;d<=9;d++)
for(int e=0;e<=9;e++)
for(int f=0;f<=9;f++)
if(a+b+c==d+e+f) printf("%d%d%d%d%d%d\n",a,b,c,d,e,f);
getch();
}

aloatist
11-03-2009, 09:29 PM
cho mảng nhập vào 6 số. 3 số đầu cộng lại = 3 số cuối
vd:123 va 222=>hạnh phúc

meo_con200220032004
15-03-2009, 12:27 AM
Đây là phần bài tập sử dụng hàm ,ai giải được thì up lên cho mọi người tham khảo thêm nha :):)

đây là code:

1. Viết chương trình bao gồm các hàm nhập, hiển thị và giải biện luận phương trình trùng phương ax4 + bx2 + c = 0 và phương trình bậc hai ax2 + bx + c = 0.

2. Viết chương trình chứa hàm kiểm tra tính nguyên tố của một số nguyên k. Nhập số nguyên dương m và liệt kê các số nguyên tố nhỏ hơn hoặc bằng m sử dụng hàm kiểm tra tính nguyên tố ở trên.

3. Viết chương trình nhập tử số và mẫu số của một phân số, tìm dạng tối giản của phân số đó sử dụng các hàm nhập tử số, mẫu số, tìm ước chung lớn nhất, tối giản phân số và in ra phân số tối giản.

4. Viết chương trình nhập n là bậc của một đa thức viết theo lũy thừa giảm dần, x là giá trị của biến; a0, a1, a2…., an là dãy hệ số của đa thức. Tính giá trị của đa thức đó.

5. Viết chương trình nhập các số nguyên dương m và n. Tìm hai chữ số cuối của m lũy thừa n.

6. Nhập các số thực x, y và kí tự ch. Nếu ch là ký hiệu của các phép toán +, -, *, / thì thực hiện phép toán đó với x, y. Nếu không thì thông báo không phải là phép toán. (Thông báo cả trường hợp chia cho 0)

7. Viết chương trình nhập và hai phân số, viết các hàm tìm ước chung lớn nhất, bội chung nhỏ nhất và tìm tổng, hiệu, tích, thương của hai phân số đó. In kết quả dưới dạng phân số tối giản.

8. Viết chương trình tìm nghiệm của phương trình f(x) = 0 trên đoạn [a,b] bằng phương pháp chia đôi liên tiếp (giả sử f(x) liên tục trên [a,b]).

9. Tính tích phân của hàm f(x) trên đoạn [a,b] bằng phương pháp hình thang với số đoạn chia n cho trước (n được nhập từ bàn phím).

10. Dãy số Fibonaxi được định nghĩa như sau: F0 = F1 = 1; Fn = Fn-1 + Fn-2 (n>1).
Viết chương trình:
a) Nhập một số n và in ra n số Fibonaxi đầu tiên lên màn hình
b) Nhập một số n và in ra các số Fibonaxi nhỏ hơn hoặc bằng n
c) Nhập một số nguyên m, kiểm tra xem m có phải là số Fibonaxi hay không?

11. Một số nguyên dương được gọi là đối xứng nếu chữ số thứ nhất bằng chữ số cuối, chữ số thứ hai bằng chữ số gần cuối… Hãy nhập các số nguyên dương m và n (m<n) và liệt kê các số đối xứng nằm giữa m và n.

12. Viết chương trình tìm hai số nguyên tố có tổng bằng một số chẵn cho trước.

13. Viết chương trình phân tích một số nguyên dương n thành các thừa số nguyên tố.

14. Viết chương trình gồm các hàm tính sin(x), cos(x), ln(x), ex bằng phương pháp xấp xỉ Taylor. Với x và n được nhập từ bàn phím.

15. Viết chương trình gồm các hàm tính sin(x), cos(x), ln(x), ex bằng phương pháp xấp xỉ Taylor cho đến khi trị tuyệt đối của số hạng bé hơn sai số epsilon cho trước. x, epsilon được nhập từ bàn phím.

16. Viết một chương trình chứa các hàm sau đây

int ktnt(int n) : trả về 1 nếu n là số nguyên tố, trái lại trả về 0
int ht(int n) : trả về 1 nếu n là số hoàn thiện, trái lại trả về 0
int bcnn(int a, int b): trả về giá trị là bộ số chung nhỏ nhất của hai số nguyên a và b
int ucln(int a, int b) : trả về giá trị là một số nguyên là ước số chung lớn nhất của hai số nguyên a và b
cacsohthien(int n) : liệt kê các số hoàn thiện nhỏ hơn hoặc bằng n
cacsongnto(int n) : liệt kê các số nguyên tố nhỏ hơn hoặc bằng n
bcnn_dayso(int n) : trả về giá trị là bội số chung nhỏ nhất của n số nguyên được nhập từ bàn phím

chelx
16-03-2009, 10:18 AM
#include"stdio.h"
#include"conio.h"
#include"math.h"

void nhap(float a,float b,float c,int i)
{ printf("nhap cac he so cua phuong trinh va so mu");
scanf ("%f%f%f%d",&a&b&c&i);
}

void inpt(float a,float b,float c,int i)
{ printf("%f x^%d + %fx^%d +%f= 0",a,i,b,i/2,c);
}
void gbl2(float a,float b,float c,char& vonghiem[9],float& nghiem[2])
{ float delta;
vonghiem[9]="vo nghiem"
if (a==0) return -c/b;
else {delta=b*b-4*a*c;
if (delta<0) return nghiem;
else nghiem[1]=(-b-sqrt(delta))/(2*a);
nghiem[2]=(-b+sqrt(delta))/(2*a);
return nghiem;
}
void gbl4(float a,float b,float c,char& vonghiem[9]="vo nghiem",float& nghiem4[4])
{ float nghiem2[2];
gbl2(a,b,c,vonghiem,nghiem[2]);
if(gbl2==vonghiem) return vonghiem;
else if (nghiem2[1]>=0&&nghiem2[2]>=0)
{ nghiem4[1]=sqrt(nghiem2[1]);
nghiem4[2]=-sqrt(nghiem2[1]);
nghiem4[3]=sqrt(nghiem2[1]);
nghiem4[4]=-sqrt(nghiem2[2]);
return nghiem4;
}
void main()
{ clrscr();
float a,b,c,nghiem2[2],nghiem4[4];
int i;
nhap(a,b,c,i);
inpt(a,b,c,i);
if(i==2) {gbl2(a,b,c,vonghiem,nghiem2);
if(gbl2==vonghiem) printf("vo nghiem");
else printf("x1=%f \n x2=%f",gbl2(a,b,c,vonghiem,nghiem2));}
if(i==4) {gbl4(a,b,c,vonghiem,nghiem4);
if (gbl4==vonghiem) printf("vo nghiem");
else
printf("x1=%f\nx2=%f\nx3=%f\nx4=%f",gbl4(a,b,c,vonghiem,nghiem4));}
getch();
}
mình thử làm bài 1:D pro sửa giúp mình nhé
nhiều lỗi mà minh không biết sửa thế nào cho đúng

chelx
16-03-2009, 10:24 AM
sax bài trên của mình sai quá nhiều + cách làm quá rườm rà:(|
pro chỉ mình những lỗi sai + đáp án đúng thanks

aloatist
20-03-2009, 01:09 PM
thank!!!!!!!!!!!!! nha

saohyvong776
03-04-2009, 12:40 AM
bài 1 trang đầu tiên :
#include<stdio.h>
#include<conio.h>
int main()
{
int A[10],x, n;
printf("nhap so phan tu cua mang A");
scanf("%d",&n); // nhap 1 so bat ky : theo de bai nay la n= 4
for(int i =0; i<n; i++)
{
scanf("%d", & A[i]);
}
x = A[0];
for( int i =0; i<n ; i++)
{
if ( A[i] > x)
{x = A[i];}

}
printf(" so lon nhat %d ",x);
for(int i =0; i<n; i++)
{
if ( A[i]<x)
{

x= A[i] ;}

}

printf("so be nhat %d ",x);
getch();
}

saohyvong776
03-04-2009, 12:43 AM
Bài 2 trang đầu tiên


#include <stdio.h>
#include <conio.h>

int main()
{
int i, j;


printf(" ");
for (j=0; j<16; j++)
printf("%3d", j);
for (i=2; i<16; i++)
for (j=0; j<16; j++)
{
if (j == 0)
printf("\n%2d ", i);
printf(" %c", i*16+j);
}
getch();
}

hants
01-05-2009, 06:15 PM
Cách đơn giản hơn như sau :

if(a+b<=c||a+c<=b||b+c<=a) printf("Không phải tam giác");
else printf("Đúng là tam giác rồi, hihi sướng quá đi mất thôi ");

uhm,anh trubavuong ơi cái if này hình như chưa được chính xác.Ví dụ a=4,b=2,c=1 không phải 3 cạnh tam giác nhưng cái hàm if kia thì nó lại coi đó là 3 cạnh tam giác.
Điều kiện để là 3 cạnh tam giác là:"tổng 2 cạnh bé phải lớn hơn cạnh lớn nhất"
chứ không phải là "tổng 2 cạnh bất kì lớn hơn cạnh thứ 3"....
Như vậy thì ta phải viết một hàm để tìm cạnh lớn nhất rồi mới áp dụng điều kiện tổng 2 cạnh còn lại lớn hơn cạnh lớn nhất đúng ko ạ?
Nếu như vậy thì phải sửa thế nào?
Em mới học chưa biết nhiều,mong mọi người júp đỡ...!

trungkien45
01-05-2009, 09:39 PM
Bài 10 c trang 4 (Giả sử các bạn biết cách hàm tính fibonasi rồi, mà không thì tìm trên diễn đàn)
Mình giả sử cái hàm ấy tính từ 1

for(int i=1;i<=n;i++)
if(n==fibonasi(i))
{printf("%d la so fibonasi thu %d",n,i);break;}
if(i>n) printf("%d khong la so fibonasi",n);
có ai có cách hay hơn không?

Các bài còn lại quá đơn giản.

kem.matlanh
02-02-2010, 10:50 PM
3. Nhập vào ba số thực a, b, c. Kiểm tra 3 số đó có lập thành ba cạnh của một tam giác không. Sau đó xác định xem tam giác tương ứng có tính chất gì: đều, vuông cân, cân, vuông hay thường.

Huhu
Vô đây trúng mén bài này
Em chưa làm đc
Các anh chỉ e code cái nhé
Tại lão bạn cùng nhóm em chạy đâu mất
Mà sáng mai phải nộp rồi
Thank mọi người

manhhung_it
04-02-2010, 01:27 PM
#include <stdio.h>
#include <conio.h>

void main()
{
float a,b,c;
printf("\nNhap vao cac canh cua mot tam giac\n");
printf("\nCanh a = "); scanf("%f",&a);
printf("\nCanh b = "); scanf("%f",&b);
printf("\nCanh c = "); scanf("%f",&c);
if ((a+b>c) && (a+c>b) && (b+c>a))
{
if ((a==b)&&(a==c)) printf("\nTam giac nay la tam giac deu");
else
if ((a==b)||(a==c)||(b==c))
{
if ((a*a==b*b+c*c)||(a*a+b*b==c*c)||(a*a+b*b==c*c))
printf("\nTam giac nay la tam giac vuong can");
else
printf("\nTam giac nay la tam giac can");
}
else
if ((a*a==b*b+c*c)||(a*a+b*b==c*c)||(a*a+b*b==c*c))
printf("\nTam giac nay la tam giac vuong");
else printf("\nTam giac nay la tam giac thuong");
}
else printf("\nDay khong phai la ba canh cua mot tam giac");
getch();
}

kem.matlanh
04-02-2010, 07:50 PM
Thank anh manhhung :x

namnt90
07-02-2010, 11:38 PM
Hãy thiết kế chương trình ứng dụng viết bằng C, khi chạy hiển thị menu như sau:

1. Nhập sinh viên.

2. Hiển thị danh sách.

3. Tìm kiếm sinh viên

4. Thoát.

Chọn 1: Chương trình sẽ hỏi nhập vào số lượng sinh viên cần quản lý (số lượng từ 1 đến 100, nếu khác sẽ thông báo và bắt buộc nhập lại cho đúng). Sau khi nhập số lượng sinh viên thì cho phép nhập chi tiết thông tin về mỗi sinh viên, thông tin bao gồm: mã số, họ tên, năm sinh, diểm toán, điểm lý, điểm hóa. Tất cả các sinh viên sẽ được ghi vào file nhị phân có tên là sinhvien.bak

Chọn 2: Chương trình sẽ đọc từ file sinhvien.bak và hiển thị danh sách các sinh viên lên màn hình.

Chọn 3: Chương trình sẽ yêu cầu nhập mã sinh viên. Nếu mã sinh viên có trong danh sách (file sinhvien.bak) sẽ hiển thị chi tiết các sinh viên có tên tương ứng ra màn hình, ngược lại thông báo không có sinh viên cần tìm.

Chọn 4: Chương trình sẽ hỏi xác nhận có thoát hay không, nếu muốn thoát thì chọn “yes”, ngược lại sẽ cho phép thực hiện tiếp tục các chức năng trên menu.
-----------------------------------------------
Thanks All !(Y:DY)

Doreamon9x
09-05-2010, 10:12 AM
Câu 1 :

#include <stdio.h>
#include <conio.h>
void main()
{
clrscr();
int a,b,c,d ;
printf("a:");scanf("%d",&a);
printf("b:");scanf("%d",&b);
printf("c:");scanf("%d",&c);
printf("d:");scanf("%d",&d);
if(a>b)
if(c>d)
if(a>c)
printf("%d la so lon nhat",a);
else
printf("%d la so lon nhat",c);
else
if(d>a)
printf("%d la so lon nhat",d);
else
printf("%d la so lon nhat",a);
else
if(d>c)
if(b>d)
printf("%d la so lon nhat",b);
else
printf("%d la so lon nhat",d);
else
if(c>b)
printf("%d la so lon nhat",c);
else
printf("%d la so lon nhat",b);
getch();
}

hongthanh
19-05-2010, 12:58 PM
có bạn nào làm bài 10 : nhap mot so nguyen n và in ra theo thứ tự ngược lại chưa ? giúp minh bai đó với .thanks cac bạn :)

IT_BK
19-05-2010, 01:17 PM
#include<stdio.h>
main()
{
int n;
printf("Nhap n:");
scanf("%d",&n);
printf("So duoc viet theo thu tu nguoc lai la:\n");
while(n!=0)
{
printf("%d",n%10);
n/=10;
}
printf("\n");
}
Hoặc bạn cũng có thể làm theo kiểu chuỗi.Mỗi phần tử của chuỗi là một chữ số, nhưng cách này thì không đúng bản chất của đề cho lắm

hoang minh nguyen
19-05-2010, 01:22 PM
nhung bai của bạn đa phần đều có trên Cviet hoac bài tương tự như vậy.ban co thể vao http://forums.congdongcviet.com/showthread.php?t=2556 de tham khảo chứ lần sau đừng tung 1 đống đề lên như vậy.người ta nhìn đã oải jui chứ nói ji làm.mình góp ý trân thành đấy.mình cũng là người mới học C thui nhưng từ khi biết đến Cviet thì tiến bộ rất nhanh,bạn hãy cố gắng nha

hoang minh nguyen
19-05-2010, 02:03 PM
ai lam dc thì post len nha ;hix!!!minh cũng mới học nên nhờ mọi người chỉ bảo thêm nha.0:) 0:) 0:)
thanks mọi người nhiều 0:) 0:) 0:) 0:) 0:)

1. Nhập vào 4 số thực. Tìm giá trị lớn nhất, nhỏ nhất trong bốn số đó bằng cách sử dụng biểu thức điều kiện

2. Viết chương trình in ra bảng mã ASCII, trong đó mỗi cột bao gồm ký tự và mã của ký tự đó dưới dạng thập phân (thập lục phân, bát phân)

3. Nhập vào ba số thực a, b, c. Kiểm tra 3 số đó có lập thành ba cạnh của một tam giác không. Sau đó xác định xem tam giác tương ứng có tính chất gì: đều, vuông cân, cân, vuông hay thường.

4. Viết chương trình nhập vào một số nguyên dương, kiểm tra xem nó có phải số nguyên tố hay không.

5. Nhập vào một số nguyên dương n, liệt kê các số nguyên tố nhỏ hơn n.

6. Nhập vào số nguyên dương, kiểm tra xem số đó có phải là số hoàn thiện hay không? Số hoàn thiện là số có giá trị bằng tổng tất cả các ước số của nó nhỏ hơn nó.

7. Nhập vào một số nguyên dương n, liệt kê các số hoàn thiện nhỏ hơn n.

8. Nhập vào các số thực cho đến khi gặp số 0, in ra giá trị lớn nhất trong số các số vừa nhập.

9. Nhập vào các số nguyên cho đến khi gặp số 0, in ra màn hình giá trị lớn nhất trong số các số chia hết cho 5 vừa nhập được.

10. Nhập vào số nguyên dương n, in ra số theo thứ tự ngược lại.
Ví dụ: nhập số n = 1234, kết quả in ra màn hình là 4321

11. Nhập vào một số nguyên dương. In ra tổng các chữ số của số đó.
Ví dụ: nhập số n = 2313, phải in ra màn hình giá trị 9.

12. Nhập tử số và mẫu số của một phân số, tìm dạng tối giản của phân số đó.

13. Viết chương trình in bảng cửu chương lên màn hình.

14. Cho tổng:

S= 1+ x/1! + (x^2)/2! +..+(x^n)/n!

a) Nhập số thực x, số nguyên n. Tính S
b) Nhập số thực x, tính tổng S cho đến khi trị tuyệt đối của số hạng bé hơn sai số epsilon cho trước (phải nhập sai số)
15. Nhập số thực x, số nguyên n. Tính tổng

S=x - (x^3)/3! + (x^5)/5! -...+((-1^n )x^(2n+1) )/(2n+1)!

16. Nhập x bằng độ, chuyển qua radian rồi tính tổng

S= 1- (x^2)/2! + (x^4)/4! -...+ ((-1^n).(x^2n))/(2n)!

cho đến khi trị tuyệt đối của số hạng bé hơn sai số cho trước (phải nhập sai số).
17. Lập chương trình giải và biện luận hệ phương trình:
ax+by=c
dx+ey=f
các hệ số a, b, c, d, e, f nhập từ bàn phím.
18. Viết chương trình nhập các hệ số a, b, c, d của hai số phức
z1=a + bi
z2= c + di
và tính tổng, hiệu, tích, thương của hai số phức đó.

19. Lập chương trình để:
- Nhập một dãy số từ bàn phím, số phần tử n được nhập từ bàn phím
- Tính trung bình cộng của các số dương và trung bình cộng của các số âm trong dãy số trên

20. Viết chương trình để tính tổ hợp, chỉnh hợp chập k của n. (k<=n)

21. Lập chương trình tính
S = (a12+a22+…+an2)0.5
trong đó n và a1, a2, …, an nhập từ bàn phím.

22. Cần có tổng 200000 đ từ ba loại tiền với mệnh giá 1000 đ, 2000 đ và 5000 đ. Lập chương trình để tìm tất cả các phương án có thể.


còn nữa ..

minh jup bạn 1 so bai ne,mình chưa biết bạn học C tới đâu nên mình sẽ làm cách đơn giản nhất,nếu bạn học cao hơn rồi thì tự sửa dổi nha.



B17


void main()
{
int a,b,c,d,e,f,dinhthuc,dinhthuc1,dinhthuc2,k;
float x,y;
cout<<"Moi ban nhap cac he so cua hpt";
cin>>a>>b>>C>>d>>e>>f;
dinhthuc=a*e-b*d;
dinhthuc1=c*e-b*f;
dinhthuc2=a*f-c*d;
k=a/d;
if(dinhthuc!=0)
{
x=1.0*dinhthuc1/dinhthuc;
y=1.0*dinhthuc2/dinhthuc;
cout<<"Hpt co nghiem duy nhat x=<<x<<" va y="<<y;
}
else
{
if(b/e==k && c/f==f)
cout<<"Hpt vo so nghiem";
else
cout<<"hpt vo nghiem";
}
}

hoang minh nguyen
19-05-2010, 02:08 PM
b12 bạn nên tìm ucln của tử và mẫu rồi tối giản
code tim ucln va bcnn thi có nè


#include <stdio.h>
#include <conio.h>
unsigned USCLN (unsigned n, unsigned m)
{
while (n != 0 && m != 0)
if (n>m)
n -= m;
else
m -= n;
if (n == 0)
return m;
else
return n;
}

unsigned BSCNN (unsigned n, unsigned m)
{
return n * m / USCLN(n, m);
}

void main()
{
unsigned n, m;

printf("\nNhap hai vao so nguyen duong : ");
scanf("%u%u", &n, &m);
printf("\nUSCLN cua %u va %u = %u", n, m, USCLN(n,m));
printf("\nBSCNN cua %u va %u = %u", n, m, BSCNN(n,m));
getch();
}

code này là của anh iamvtn ,bạn tham khảo nha

hoang minh nguyen
19-05-2010, 02:25 PM
b22



#include<conio.h>
#include<iostream.h>
void main()
{
clrscr();
int n1,n2,n5,d=0;
for(n1=1;n1<=200;n1++)
for(n2=1;n2<=100;n2++)
for(n5=1;n5<=40;n5++)
if(n1*1+n2*2+n5*5==200)
d++;
cout<<"co tat ca "<<d<<" phuong an lua chon";
getch();
}

hoang minh nguyen
19-05-2010, 02:51 PM
b21 ne ban



#include<conio.h>
#include<iostream.h>
void nhapmang(int a[],int n)
{
int i;
for(i=0;i<n;i++)
{
cout<<"a"<<i+1<<"2=";
cin>>a[i];
}
}
int tong(int a[],int n)
{
int i,s=0;
for(i=0;i<n;i++)
s=s+a[i];
return s;
}
void main()
{
clrscr();
int a[50],n;
float k;
cout<<"moi ban nhap so phan tu can tinh tong:";
cin>>n;
cout<<"Moi ban nhap cac phan tu can tinh tong:"<<endl;
nhapmang(a,n);
k=1.0*(tong(a,n))/2;
cout<<"dap so:"<<k;
getch();
}

peterdrew
19-05-2010, 02:57 PM
Đề C thì viết code C đi em! Đừng để C++ nó chiếm thế,....

hoang minh nguyen
19-05-2010, 03:06 PM
Đề C thì viết code C đi em! Đừng để C++ nó chiếm thế,....
tại bọn em học C++ nên ko biết viết theo C,anh thông cảm được ko?

peterdrew
19-05-2010, 03:15 PM
Việc code được C++ thì không thể bỏ qua code bằng C được; ý anh là em nên dùng các câu lệnh C để thực hiện việc này (đồng thời cũng phải nhấn mạnh: Code C hoàn toàn chạy được bằng trình biên dịch C++). Chỉ vậy thôi...

hoang minh nguyen
19-05-2010, 03:29 PM
Việc code được C++ thì không thể bỏ qua code bằng C được; ý anh là em nên dùng các câu lệnh C để thực hiện việc này (đồng thời cũng phải nhấn mạnh: Code C hoàn toàn chạy được bằng trình biên dịch C++). Chỉ vậy thôi...
nói thiệt là e ko biết dùng 1 câu lệnh C nào cả, a nhớ hôm trước e hỏi a la
prinff ->cout
scan -> cin

tucute89
19-05-2010, 05:37 PM
có bạn nào làm bài 10 : nhap mot so nguyen n và in ra theo thứ tự ngược lại chưa ? giúp minh bai đó với .thanks cac bạn :)

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

void main()
{
int n = 124;
while (1){

printf(" %2d ",n%10);
n/=10;
if( n == 0 )break;


}

getch();
}
Này bồ :D

Xcross87
19-05-2010, 05:55 PM
@tucute89:
in một lần là đủ



#include <cstdio>

int GetReverse( const int Val )
{
int x = 0, tmp = Val;
while( tmp > 0 )
{
x = x * 10 + tmp % 10;
tmp /= 10;
}
return x;
}

int main()
{
int A = 12345,B;
B = GetReverse( A );
printf("So nguoc lai cua %d la %d\n", A, B );
return 0;
}

hongthanh
19-05-2010, 10:18 PM
#include<stdio.h>
main()
{
int n;
printf("Nhap n:");
scanf("%d",&n);
printf("So duoc viet theo thu tu nguoc lai la:\n");
while(n!=0)
{
printf("%d",n%10);
n/=10;
}
printf("\n");
}
Hoặc bạn cũng có thể làm theo kiểu chuỗi.Mỗi phần tử của chuỗi là một chữ số, nhưng cách này thì không đúng bản chất của đề cho lắm

hi !cảm ơn bạn IT_BK rat nhieu :d