View Full Version : Bài tập cơ bản C
hoangthienthach
02-04-2008, 09:32 PM
24h Giá Rẻ - Giá rẻ cho mọi nhà (http://24hgiare.com/)
Mua Bán, Giá Cả Thị trường 24h (http://24hgiare.com/)
http://www.24hgiare.com/images/misc/vbulletin4_logo.png (http://www.24hgiare.com/)
:khi145: (http://24hgiare.com/)http://24hgiare.com (http://24hgiare.com/) :khi27: (http://24hgiare.com/) (http://24hgiare.com/)
Giải phương trình bậc 2
1. Ý TƯỞNG THUẬT TOÁN
• Xét 3 hệ số của phương trình trước hết xét a=0 hoặc a khác 0
a. TH1 : a=0
- Ta xét thêm b =0 hay khác 0 . Nếu a=0 mà b=0 thì phương trình không xác định . Nếu b khác 0 thì giải bài toán giống như giải phương trình bậc nhất .
b. TH2 : a khác 0
- Ta tính Delta và xét Delta đưa ra nghiệm của pt
- Nếu Delta < 0 : Phương trình vô nghiệm
- Nếu Delta = 0 : Phương trình có nghiệm kép
- Nếu Delta > 0 : Phương trình có hai nghiệm phân biệt .
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
• a , b ,c là ba hệ số của phương trình .
• Delta là biến dùng để lưu giá trị Delta sau khi tính .
• x1,x2 : là nghiệm của phương trình nếu pt có 2 nghiệm phân biệt
• x : là nghiệm nếu phương trình chỉ có một nghiệm mà thôi
3. BÀI GIẢI :
#include<conio.h>
#include<stdio.h>
#include<math.h>void main ()
{ clrscr();
float a,b,c,delta;
printf("ban hay nhap a,b,c vao ");
scanf("%f%f%f",&a,&b,&c);// cac he so cua pt bac 2
if (a!=0) {
delta=b*b-4*a*c;
if (delta>0)
{
printf("phuong trinh co 2 nghiem\n");
printf("x1=%f",(-b-sqrt(delta))/(2*a));
printf("\n");
printf("x2=%f",(-b+sqrt(delta))/(2*a));
}
else //TH a<>0 va delta <=0
{
if (delta==0) {
printf("phuong trinh co nghiem kep\n");
printf("x=%f",-b/(2*a));
}
else
printf("phuong trinh vo nghiem ");
}
}
else // (If a==0)
{
if (b!=0) // a luc nay =0 {
printf("phuong trinh co 1 nghiem\n");
printf("x=%f",-c/b);
}
else // a=0 va b=0
{ if (c!=0)
printf("phuong trinh khong xac dinh");
else
printf("phuong trinh vo so nghiem");
}
}
getch();
}
hoangthienthach
09-04-2008, 11:18 PM
/* Tích của hai số thưc */
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
float a,b,x ;
printf("\nSo cua a la:");
scanf("%f",&a);
printf("\nSo cua b la:");
scanf("%f",&b);
x=a*b; /*Tinh tich luy thua*/
printf("\nTich luy thua cua hai so :%f" ,x);
getch();
}
hoangthienthach
09-04-2008, 11:21 PM
/* Tính diện tích tam giác */
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main (void)
{
int a,b,c;
float s,p;
printf("\n Moi nhap canh a vao nha:");
scanf("%d",&a);
printf("\n Moi nhap canh b vao nha:");
scanf("%d",&b);
printf("\n Moi nhap canh c vao nha:");
scanf("%d",&c);
p=(float) (a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("\n Dien tich hinh tam giac la:%.2f",s);
getch();
}
hoangthienthach
11-04-2008, 09:50 PM
/*Viet chuong trinh nhap 3 so thuc .Hay in 3 so thuc ay ra man hinh theo thu tu tang dan ma chi dung toi da hai bien phu*/
#include<stdio.h>
#include<conio.h>
void main ()
{
clrscr();
int a,b,c;
printf("\nNhap so thu nhat vao:");
scanf("%d",&a);
printf("\nNhap so thu hai vao:");
scanf("%d",&b);
printf("\nNhap so thu 3 vao:");
scanf("%d",&c);
if ((a>b)&&(b>c))
printf("\nThu tu tang dan cua 3 so la %d,%d,%d",c,b,a);
if ((a>c)&&(c>b))
printf("\nThu tu tang dan cua 3 so la %d,%d,%d",b,c,a);
if ((b>a)&&(a>c))
printf("\nThu tu tang dan cua 3 so la %d,%d,%d",c,a,b);
if ((b>c)&&(c>a))
printf("\nThu tu tang dan cua 3 so la %d,%d,%d",a,c,b);
if ((c>a)&&(a>b))
printf("\nThu tu tang dan cua 3 so la %d,%d,%d",b,a,c);
if ((c>b)&&(b>a))
printf("\nThu tu tang dan cua 3 so la %d,%d,%d",a,b,c);
getch();
}
hoangthienthach
13-04-2008, 04:26 PM
/*Nhập tên khách hàng khai báo chuỗi, Tháng, Số chỉ cũ, Số chỉ mới, Số kwh tiêu thụ và đơn giá, Số tiền phải trả*/
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main(void)
{
char ten_khach_hang[20];
long don_gia;
printf("\nNhap ten khach hang: ") ;
gets(ten_khach_hang);
int sc,sm,tt,tr,t;
printf("\nThang tieu thu la:");
scanf("%d",&t);
printf("\nSo chi cu la:");
scanf("%d",&sc);
printf("\nSo chi moi la:");
scanf("%d",&sm);
tt=sm-sc;
printf("\nSo kwh tieu thu la:%d",tt);
printf("\nDon gia la:");
scanf("%ld",&don_gia);
tr=don_gia*tt;
printf("\nSo tien phai tra la:%d",tr);
getch();
}
hoangthienthach
13-04-2008, 04:39 PM
/*Chương trình xuất thông tin của một mặt hàng*/
#include<stdio.h>
void main()
{
char ten_mat_hang[20];
float trong_luong;
int ma_chat_luong;
long don_gia;
unsigned so_luong;
printf("\nNhap du lieu tu ban phim:");
printf("\nTen mat hang=>");
gets(ten_mat_hang);
printf("\nTrong luong =>");
scanf("%f",&trong_luong);
printf("\nDon gia =>");
scanf("%ld%/*c",&don_gia);
printf("\nMa chat luong =>");
scanf("%d", &ma_chat_luong);
printf("\nSo luong =>");
scanf("%u",&so_luong);
printf("\nTen mat hang:%s \nTrong luong :%.2f \nDon gia:%ld\n Ma chat luong: %d \nSo luong :%u", ten_mat_hang,trong_luong,don_gia,ma_chat_luong,so_ luong);
}
jenmy
25-04-2008, 02:39 AM
Sẵn anh post bài thì em cũng làm theo luôn:
Em biết một bài như sao: s=1!+2!+....+n!
#include <stdio.h>
#include <conio.h>
void tong()
{int n, i, s=0, tich=1;
printf("\n\tNhap vao so can tinh : ");
scanf("%d",&n);
for(i=1;i<=n;i++){tich=tich*i;
s+=tich;
}
printf("\n\tTong tinh duoc la : %d",s);
}
void main()
{clrscr();
tong();
getch;
}
Các anh xem dùm em có đúng hay không nhe thầy dạy vậy chứ em cũng không biết nữa!.
Bài này bạn dùng hàm....vì đây là tppic C căn bản lần sau pót đúng khu vực nha:
Bài làm đúng rùi nhưng hoangthienthach đưa ra code này mình cảm thấy ngắn gọn và dễ hiểu
#include<stdio.h>
#include<conio.h>
void main ()
{
int n,i;
float S=0;
int tich=1;
printf("\nNhap N:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
tich=tich*i;
S=S+tich;
}
printf("\nTong cua phep tinh S=%f",S);
getch();
}
hoangthienthach
25-04-2008, 12:34 PM
/* Nhập số xuất ra chữ */
vd 11 :Mười một
Ví dụ này xuất đc từ 10 ==========>99. Khi ta nhập bàn phím;
Nếu ban muốn nhập số lớn hơn thỉ chỉ thêm 1 switch(trăm),(ngàn) và thêm vào đó bạn phải Mod để switch nhận dạng
#include<stdio.h>
#include<conio,h>
void main ()
{
clrscr();
int a,ch,dv;
printf("\nNhap so vao di de doc:");
scanf("%d",&a);
ch=(a/10)%10;
dv=a%10;
switch(ch)
{
case 1:printf("\n Muoi");
break;
case 2:printf("\n Hai Muoi");
break;
case 3:printf("\n Ba Muoi");
break;
case 4:printf("\n Bon Muoi");
break;
case 5:printf("\n Nam Muoi");
break;
case 6:printf("\n Sau Muoi");
break;
case 7:printf("\n Bay Muoi");
break;
case 8:printf("\n Tam Muoi");
break;
case 9:printf("\n ChinMuoi");
break;
}
switch(dv)
case 1:printf(" Mot");
break;
case 2:printf(" Hai");
break;
case 3:printf(" Ba");
break;
case 4:printf(" Bon");
break;
case 5:printf(" Nam");
break;
case 6:printf(" Sau");
break;
case 7:printf(" Bay");
break;
case 8:printf(" Tam");
break;
case 9:printf(" Chin");
break;
}
getch();
}
hoangthienthach
29-04-2008, 08:55 PM
Chúc các bạn thành công
Chương trình này sẽ in đầy đủ từ 1 ------------>10 trong Bảng Cửu Chương
# include <iostream.h>
# include <conio.h>
main()
{
int j ,i ;
for (i=1 ; i<=10 ; i++)
{
for (j =1 ; j <= 10 ; j ++)
{
cout << j*i<<"\t" ;
}
cout<<endl;
}
getch();
}
hoangthienthach
30-04-2008, 08:38 AM
/*Viết hàm tính cân bậc N*/
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main ()
{
float x,S,n;
printf("\nNhap so tinh can vao:");
scanf("%f",&x);
printf("\nCan bac:");
scanf("%f",&n);
S=pow(x,1/n);
printf("\nKet qua la :%f",S);
getch();
}Còn tính tích của lũy thừa x^y.....thì rất dễ thôi..............các bạn chỉ cần thay n=y
Chúc các bạn thành công
hoangthienthach
30-04-2008, 08:51 AM
Tính tổng S=1+2+3+.............+N
#include<stdio.h>
#include<conio.h>
void main ()
{
int S=0;
int i=1;
int N;
printf("\nNhap N:");
scanf("%d",&N);
S=0;
while (i<=N)
{
S=S+i;
i=i+1;
}
printf("\nTong la:%d",S);
getch();
}
Còn tính S=1/2 + 1/4 +..........+1/2N
Bạn chỉ cần thay mà Thạch đã đánh dấu RED như sau
i=1/2
S=S+i;
i=1/2*i;
Bài S= 1^2 + 2^2 + 3^2+ ....................+N^2
i=1;
S=S+i*i
i=i+1
Chúc các bạn thành công
hoangthienthach
30-04-2008, 03:53 PM
Bài tập 3 /55..........Sách lập trình cơ bản
Nếu x>=5
S=2*x*x + 6*x + 9
Ngược lại
S=-2*x*x + 6*x - 9
#include<stdio.h>
#include<conio.h>
void main ()
{
clrscr ();
int x,s1,s2;
printf("\nNhap x vao de tinh :");
scanf("%d",&x);
s1=2*x*x+6*x+9;
s2=-2*x*x+6*x-9;
if (x>=5)
printf("\Ket qua ra la:%d",s1);
else
printf("\nKet qua ra la:%d",s2);
getch();
}
hoangthienthach
02-05-2008, 10:47 AM
Ví dụ:
Cho N=12345
a/ Chữ số cuối là 5;
b/ Chữ số đầu là 1;
c/ Tong cac 1 chữ số 12345 là 15;
d/ Số đảo ngược của 12345 là 54321;
#include<stdio.h>
#include<conio.h>
void main()
{
long int n;
int x1,x2,x3,x4,x5,s;
printf("\nNhap so co 5 chu so vao:");
scanf("%ld",&n);
x1=n%10;
printf("\nChu so cuoi la:%d",x1);
x5=n/10000;
printf("\nChu so dau la:%d",x5);
x2=(n%100)/10;
x3=(n%1000)/100;
x4=(n%10000)/1000;
s=x1+x2+x3+x4+x5;
printf("\nTong cua chung la:%d",s);
printf("\nDao nguoc cua 5 so do la:%d%d%d%d%d",x1,x2,x3,x4,x5);
getch();
}
hoangthienthach
07-05-2008, 10:03 PM
Viết chương trình nhập ngày, tháng, năm. Tìm ngày, tháng, năm kế tiếp theo.
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
int ngay,t,n,songay;
clrscr();
printf("nhap ngay:");
scanf("%d",&ngay);
printf("nhap thang:");
scanf("%d",&t);
printf("nhap nam:");
scanf("%d",&n);
switch (t)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
songay=31;
break;
case 4:
case 6:
case 9:
case 11:
songay=30;
break;
case 2:
if((n%400==0)||((n%4==0)&&(n%100!=0)))
songay=29;
else
songay=28;
break;
default:
printf("thang nay co ");
}
if(ngay<songay)
ngay=ngay+1;
else
{
if((ngay==songay)&&(t<12))
{
ngay=1;
t++;
}
else
{
ngay=1;
t=1;
n++;
}
}
printf("ngay thang nam ke tiep: %d/%d/%d",ngay,t,n);
getch();
}
Còn tính ngày sau đó thì không làm được nữa thì Thạch đây cũng đành bó tay.................:168:
hoangthienthach
09-05-2008, 08:10 PM
Viết chương trình nhập số nguyên dương N. Tìm số nguyên dương lớn nhất sao cho 1+2+..........+m < N
Ví dụ : N=20 thì 1+2+3+4+5=15<20 ==> m=5
#include<stdio.h>
#include<conio.h>
void main ()
{
int i,S=0,n;
printf("\nNhap N=");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
S=S+i;
if (S>=n)
break ;
}
i=i-1;
printf("\nSo nguyen duong lon nhat:%d",i);
getch();
}
hoangthienthach
09-05-2008, 08:27 PM
Lập chương trình in ra hình chữ nhật có kích thước m x n
Hoàng Thiên Thach sẽ làm hai hình đặc và rỗng theo kiểu 4 x7
Hình chữ nhật đặc
#include<stdio.h>
#include<conio.h>
void main ()
{
int m,n,d,c;
printf("\nNhap so dong m vao:");
scanf("%d",&m);
printf("\nNhap so cot n vao:");
scanf("%d",&n);
for (d=1;d<=m;d++)
{
for (c=1;c<=n;c++)
printf(" * ");
printf("\n");
}
getch();
}
Hình chữ nhật rỗng.......
#include<stdio.h>
#include<conio.h>
void main ()
{
int m,n,d,c;
printf("\nNhap so dong m vao:");
scanf("%d",&m);
printf("\nNhap so cot n vao:");
scanf("%d",&n);
for (d=1;d<=m;d++)
{
for (c=1;c<=n;c++)
if ((d==1)||(d==m)||(c==1)||(c==n))
printf(" * ");
else
printf(" ");
printf("\n ");
}
getch();
}
hoangthienthach
10-05-2008, 07:32 PM
Đến đây thì các bạn đã có một số kiến thức quan trọng để bước đầu trong việc lập trình. Các bạn phải chịu khó tìm hiểiuu và tham khảo và thực hành trên máy tính một cách nhuần nhuyễn............Vì mọi bài tập của chúng ta đều có code sẵn..........chúng ta chỉ cần luyện tập nhiều là có khả năng biến hóa..........Trong thời gian này Hoàng Thiên Thạch đang chuẩn bị thi cuối kỳ nên không có thời gian post bài............Vậy các bạn có những bài tập nào hãy post lên để chúng ta cùng đưa ra đáp án của bài đó....Và cái chủ yếu của lập trình là phải am hiểu thuật toán về cách giải quyết bài toán.................Nếu các bạn tìm ra thuật toán thì không còn gì trở ngại
Bài Toán =====> Thuật Giải ====> Ngôn Ngữ Lập Trình ======> Máy Tính
Chúc các bạn thành công.....:178:
hoangthienthach
10-05-2008, 08:54 PM
Bài tập tính tổng nữa ........Tính có n dấu căn
S =sqrt (2 +(sqrt (2 +........(sqrt (2))
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main ()
{
int n,i, S=0;
printf("\nNhap N:");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
S=sqrt(2+S);
}
printf("\nS=%d",S);
getch();
}
hoangthienthach
10-05-2008, 09:46 PM
Yêu cầu tính s(n) có n dấu căn như hình vẻ
http://i277.photobucket.com/albums/kk80/vivaacong/35.jpg
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main ()
{
int n,i, S=0;
printf("\nNhap N:");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
S=sqrt(n-i-1-S);
}
printf("\nS=%d",S);
getch();
}
hoangthienthach
10-05-2008, 09:55 PM
Yêu cầu tính s(n) có n dấu căn
đề bài như hình vẻ
http://i277.photobucket.com/albums/kk80/vivaacong/34.jpg
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main ()
{
int n,i, S=0;
printf("\nNhap N:");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
S=sqrt(i + S);
}
printf("\nS=%d",S);
getch();
}
hoangthienthach
10-05-2008, 10:17 PM
Viết chương trình liệt kê các số nguyên dương N và tính tổng của nó.
Ví Dụ N=12
Các ước số của 12 là : 1 2 3 4 6 12
Có các ước số : 6
Tổng của nó là : 28
#include <stdio.h>
#include<conio.h>
void main()
{
int i,n,s=0,m=0;
printf("Moi ban nhap n: ");scanf("%d",&n);
for( i=1;i<=n;i++)
if(n%i==0)
{
s=s +i;
m++
printf("\n%d",i);
}
printf("\nDem cac uoc so :%d",m);
printf("Tong cac uoc so la : %d",s);
getch();
}
}
hoangthienthach
15-05-2008, 01:36 PM
Viết chương trình in ra tam giac đều rỗng
#include<stdio.h>
#include<conio.h>
void main()
{
clrscr();
int i,j,h,m,n;
printf("\nNhap so dong h:");
scanf("%d",&h);
h=2*h-1 ;
for (i=h/2+1;i<=h;i++)
{
for (j=1;j<=h;j++)
{
if (i==j||i+j==h+1||i==h)
printf(" * ");
else
printf(" ") ;
}
printf("\n") ;
}
getch();
}:177:
hoangthienthach
19-05-2008, 09:35 AM
Yêu cầu như hình vẻ
http://i277.photobucket.com/albums/kk80/vivaacong/38.jpg
#include<stdio.h>
#include<conio.h>
void main ()
{
int n,i, S=0;
printf("\nNhap N:");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
S=S + sqrt(1/i);
}
printf("\nS=%d",S);
getch();
}
PK_nood
11-11-2008, 10:55 AM
sao khó quá vậy?chắc em là sinh viên khóa mới nên chưa được học
linhnguyenit
11-11-2008, 01:01 PM
Yêu cầu như hình vẻ
http://i277.photobucket.com/albums/kk80/vivaacong/38.jpg
*** hidden content ***
#include<stdio.h>
#include<conio.h>
void main ()
{
int n,i, S=0;
printf("\nNhap N:");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
S=S + sqrt(1/i);
}
printf("\nS=%d",S);
getch();
}
Vi dụ: N= 3 S cua em lần lượ là:
i=1: S=0+sqrt(1);
i=2: S=1+sqrt(1/2);
i=3: S=(1+sqrt(1/2)+ sqrt(1/3);
---------sai trầm trọng------------
http://i277.photobucket.com/albums/kk80/vivaacong/38.jpg
Theo đề bài thì cách giải sẽ là:
#include<stdio.h>
#include<conio.h>
void main ()
{
int n,i, S=0;
printf("\nNhap N:");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
S=pow(i+S,1/(i+1));
}
printf("\nS=%d",S);
getch();
}
linhnguyenit
11-11-2008, 07:21 PM
[quote=hoangthienthach;1771]Viết chương trình in ra tam giac đều rỗng
#include<stdio.h>
#include<conio.h>
void main()
{
clrscr();
int i,j,h,m,n;
printf("\nNhap so dong h:");
scanf("%d",&h);
h=2*h-1 ;
for (i=h/2+1;i<=h;i++)
{
for (j=1;j<=h;j++)
{
if (i==j||i+j==h+1||i==h)
printf(" * ");
else
printf(" ") ;
}
printf("\n") ;
}
getch();
}
quote]
em viết chạy chưa?
Trước khi post cho các bạn, nhớ test hãy post nhé:khi101: A ko test nhưng a đọc không thấy đúng. Nếu em xuất được tam giác đều rỗng thì post hình chụp Result luôn nhé
nhattai
17-11-2008, 12:59 AM
em đang học lập trình hướng đối tượng các anh chị nào có bài tập và bài giải up lên cho em nha.thanks
anh chị nào có bài tập về mảng 2 chiều,con trỏ,chuỗi up lên cho em nha.thanks
lnng7777
24-02-2009, 04:30 PM
bài viết bảng cửu chươn của bạn hình như có sai sót.mình hok biết chỗ nào (beginer mừ)ma mình chạy thử bằng BC3.1 hok đc
linhnguyenit
24-02-2009, 08:52 PM
bài viết bảng cửu chươn của bạn hình như có sai sót.mình hok biết chỗ nào (beginer mừ)ma mình chạy thử bằng BC3.1 hok đc
Em về làm
for( int i =1; i<=10;i++)
{
for( int j =1;j<=10;j++)
printf("%d x %d =%d",i, j, i*j);
}
titeo
08-08-2009, 12:38 AM
[quote=hoangthienthach;1771]Viết chương trình in ra tam giac đều rỗng
#include<stdio.h>
#include<conio.h>
void main()
{
clrscr();
int i,j,h,m,n;
printf("\nNhap so dong h:");
scanf("%d",&h);
h=2*h-1 ;
for (i=h/2+1;i<=h;i++)
{
for (j=1;j<=h;j++)
{
if (i==j||i+j==h+1||i==h)
printf(" * ");
else
printf(" ") ;
}
printf("\n") ;
}
getch();
}
quote]
em viết chạy chưa?
Trước khi post cho các bạn, nhớ test hãy post nhé:khi101: A ko test nhưng a đọc không thấy đúng. Nếu em xuất được tam giác đều rỗng thì post hình chụp Result luôn nhé
em thấy chạy dc mà ta.Chỉ cần thay printf(" * "); thành printf("*"); là ok .Thuật toán hay.:D:khi95:
knightherotam
02-11-2009, 05:28 PM
thanks mấy anh nhìu lém, em thì hok bít nhìu..................hux
Thieves
15-11-2009, 05:36 PM
Các bạn cho mình giải đáp vấn đề này?
Nhập 1 số nguyên dương có tối đa 5 chữ số.Hỏi số đó có bao nhiêu số?
Vd: Nếu nhập 25 thì có 2 chữ số, nhập 300 thì có 3 chữ số
Ngoài ra mình thấy trong SGK còn có thêm phần tính tổng các số đó cụ thể là số 25 có 2 số và 300 có 3 số vậy tổng cộng là 5 phải không? :khi41:
nhihon
15-11-2009, 07:16 PM
Các bạn cho mình giải đáp vấn đề này?
Nhập 1 số nguyên dương có tối đa 5 chữ số.Hỏi số đó có bao nhiêu số?
Vd: Nếu nhập 25 thì có 2 chữ số, nhập 300 thì có 3 chữ số
Ngoài ra mình thấy trong SGK còn có thêm phần tính tổng các số đó cụ thể là số 25 có 2 số và 300 có 3 số vậy tổng cộng là 5 phải không? :khi41:
#include <stdio.h>
#include <conio.h>
void main()
{
int n,;
int i=0;
printf("Nhap n: ");
scanf("%d",&n);
while (n!=0)
{
n=n/10;
i=i+1;
}
printf(" co %d chu so",i);
}
Thieves
16-11-2009, 08:33 AM
scanf("%d",n);
Cám ơn bạn đã trả lời mình nhưng mình xin góp ý có 1 chỗ sai trong bài
scanf("%d",n) --> scanf("%d",&n)
Mình đã test và thấy rất OK! :khi52:
Cũng là bài toán đó nhưng nếu từ 9 số tối đa thì sao mà chỉ dùng được hàm trong C2: Cấu trúc rẽ nhánh thôi. :khi41:
Còn nữa bạn chưa trả lời mình câu hỏi tổng cộng các chữ số đó.
Mong được góp ý kiến. Thank! :khi95:
nhihon
16-11-2009, 07:14 PM
bạn nói sao mình hok hiểu, 9 số tối đa????? cái đó mấy số cũng tính đc mà:), với lại cái tính tổng mình cũng ko hiểu kì quá...
Thieves
16-11-2009, 10:01 PM
Ý của mình là cũng là bài toán đó nhưng nhiều số hơn thay tối đa 5 số thành tối đa 9 số.
Còn cái tổng có thể ko cần thiết cho lắm về đó là phần thêm cho bài tập thôi. :khi148:
Nên nhớ chỉ làm hàm của C2 thôi. Còn cái tổng thì mình đã tìm ra rồi.
nhihon
17-11-2009, 07:36 PM
code đó làm cho tối đa 9 cũng ok mà:) còn dùng hàm thì sẽ là..
#include <stdio.h>
#include <conio.h>
int demso(int n)
{
int i=0;
while (n!=0)
{
n=n/10;
i=i+1;
}
return i;
}
void main()
{
int n,kq;
printf("Nhap so n: ");
scanf("%d",&n);
kq=demso(n);
printf("%d",kq);
}
Thieves
18-11-2009, 09:44 AM
Mình hiểu về vấn đề này nhưng bạn có thể dùng hàm if...else(swich...case) ko?
Hàm while...return mình có xem qua nhưng chưa học phần đó nó ở C3 lận :khi127:
Vì vậy bạn có thể dùng hàm đơn giản hơn như mình đã nói ở trên không?
Thanks!
khigiadano
19-11-2009, 12:01 AM
Khi đăng tải code lên bài viết
Các bạn bỏ đoạn code bên trong thẻ [code ]nội dung code[/ code]nha
Thieves
19-11-2009, 09:40 AM
Tại sao lại làm như vậy hả bạn khigiadano? :khi41:
nhihon
19-11-2009, 09:33 PM
thông cảm nha mình không biết làm cách if else:khi9:, hoặc có thể làm được mà cực kì thủ công...
khigiadano
20-11-2009, 11:53 PM
Tại sao lại làm như vậy hả bạn khigiadano? :khi41:
Đưa vào thẻ CODE thì các dòng ko bị sát mép dẫn đến khó đọc
Nhìn vào 1 số bài post code lập trình của mình và so sánh với mấy bài code mà ko bỏ vào thẻ CODE sẽ hiểu
Thieves
23-11-2009, 12:16 PM
Bạn nhihon này cái code mới của bạn có vấn đề ở chỗ là nó chỉ có thể nhập được tối đa là 5 số thôi chứ từ 6 số trở lên nó khai báo sai số
Cụ thể là: Nhập 123456 phải khai báo là 6 số còn ở đây là 4 số thôi :khi10:
Mong bạn xem lại vấn đề này!
zohuwuan0707
27-11-2009, 12:58 PM
may anh giup em :tinh tong cac phan tu cua mang va hien thi mang theo thu tu nguoc lai
destroy0612
27-11-2009, 04:10 PM
ở đây mình chỉ có thể giúp bạn giải thuật thôi nhé.
1/ Ta có mảng a gồm n phần tử. Như vậy, ta sẽ tạo 1 vòng lặp for chạy từ đầu mảng đến cuối mảng. Đồng thời, mỗi lần for chạy thì cho biến " tong = tong + a "
[I]Chú ý: lúc khởi tạo biến tong phải khởi tạo cho nó giá trị ban đầu = 0 // để hạn chế sai sót ngoài ý muốn.
2/ Tương tự. để xuất ra màn hình các giá trị theo thứ tự ngược lại thì bạn cũng chạy vòng lặp for. Nhưng, for sẽ bắt đầu từ giá trị cuối cùng đến giá trị đầu tiên // for(int i=n-1 ; i >=0 ; i --)
Mỗi lần for chạy thì nó sẽ xuất ra màn hình giá trị. Như vậy. bạn đã có được đáp án cần thiết đó.
C9CT2_Dream
04-04-2010, 01:24 PM
uh...hay đấy...nhưng các Bác có cách nào nhanh hơn nữa ko...ngắn gọn hơn...
romeo1590
20-04-2010, 04:41 PM
Cho em hỏi sao các bài tập C++ căn bản ở forum đều dùng " printf...........scanf " mà không dùng "cout ............ cin " thế ????
khigiadano
20-04-2010, 09:34 PM
Cho em hỏi sao các bài tập C++ căn bản ở forum đều dùng " printf...........scanf " mà không dùng "cout ............ cin " thế ????
Nếu dùng thư viện iostream thì xài cout - cin
Còn dùng thư viện stdio thì printf - scan
Topic này là bài tập C
:khi74:
nobitaoo
08-06-2010, 12:59 PM
/* nhap vao day so roi in nguoc lai*/
vd : nhap 12345 in ra 54321
#include<stdio.h>
#include<conio.h>
void main()
{
clrscr();
long int n,dv;
do
{
printf("nhap vao n: ");
scanf("%ld",&n);}
while(n<=0);
dv=n%10;
while(dv!=0)
{printf("%3ld",dv);
n=n/10;
dv=n%10;
}
getch();
}
nobitaoo
08-06-2010, 01:01 PM
/*giai phuong trinh bac II ax2 +bx +c= 0*/
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
clrscr();
float a,b,c,delta;
printf("nhap a: ");
scanf("%f",&a);
printf("nhap b: ");
scanf("%f",&b);
printf("nhap c: ");
scanf("%f",&c);
delta=b*b-4*a*c;
if(delta<0)
printf("phuong trinh vo nghiem");
if(delta==0)
printf("phuong trinh co nghiem kep x1=x2=%.2f",-b/a);
if(delta>0)
printf("phuong trinh co 2 nghiem x1=%.2f va x2=%.2f",(-b+sqrt(delta))/2*a,(-b-sqrt(delta))/2*a);
getch();
}
datchuot
11-12-2010, 11:58 AM
/* Tính diện tích tam giác */
*** hidden content ***
bác ơi lỡ ai đó nhập số âm thì sao :| em nghĩ cần thêm điều kiện
khigiadano
11-12-2010, 09:45 PM
bác ơi lỡ ai đó nhập số âm thì sao :| em nghĩ cần thêm điều kiện
Nhận ra điều này là tốt
Nhưng topic này là căn bản mà.
Còn nếu để kiểm tra nhiều thứ thì phải phức tạp hơn, thế thì không thể gọi căn bản nữa
Mỗi bạn tự thêm ràng buộc điều kiện vào cho nó hoàn thiện thôi :khi95:
vBulletin® v3.8.3, Copyright ©2000-2012, Jelsoft Enterprises Ltd.