lập trình C , đang kiểm tra xin giúp với

xiao3xiao3xiao

Legend of Zelda
Lão Làng GVN
Tham gia ngày
22/4/09
Bài viết
982
Reaction score
193
xin các huynh giúp với

đề 1 .viết chương trinh nhập vào 1 tháng bất kỳ , sau đó in ra số ngày có trong trong tháng ( tháng 2 có 28 ngày )

bài 2 .một mảng 2 chiều các số nguyên (4x3) . tính và in ra tổng một cột k nào đó được nhập

câu 3 .nhập vào một mảng 1 chiều các số nguyên . kiểm tra xem giá trị các phần tử đối xứng nhau không (vd : 1 3 4 4 3 1 la đôi xứng )

làm được bài nào xin các bạn giúp đỡ đăng lên luôn
 
Bài 1 :
bạn khai báo 1 mảng
int ngaythang[12] = {31,28,31,30,31,30,31,31,30,31,30,31}
sau đó cứ người nhập vào số k thì bạn cho in ra màn hình giá trị ngaythang[k-1]
Đề này ko có nhập năm nên ko cần kiểm tra nhuận :D

Bài 2 :
int TongDongK(int a[][100],int m,int n,int k)
{
int S=0;
for(int i=0;i<m;i++)
if(i==k)
for(int j=0;j<n;j++)
S = S + a[j];
return S;
}


Câu 3 :
int KTDX (int a[100],int m)
{
for(int i=0;i<m/2;i++)
if(a != a[n-1-i])
return 0;
return 1;
}
 
đề 1 .viết chương trinh nhập vào 1 tháng bất kỳ , sau đó in ra số ngày có trong trong tháng ( tháng 2 có 28 ngày )
#include"conio.h";
#include"stdio.h";

void main()
{
clrscr();
int n;
printf("Nhap vao thang can tim:");
scanf("%d",&n);
if(n<1 || n >12)
printf("Nhap sai thang.ket thuc chuong trinh");
else
{
switch(n) {
case 1 : printf("Thang 1 co 31 ngay"); break;
case 2 : printf("Thang 2 co 28 ngay"); break;
case 3 : printf("Thang 3 co 31 ngay"); break;
case 4 : printf("Thang 4 co 30 ngay"); break;
case 5 : printf("Thang 5 co 31 ngay"); break;
case 6 : printf("Thang 6 co 30 ngay"); break;
case 7 : printf("Thang 7 co 31 ngay"); break;
case 8 : printf("Thang 8 co 31 ngay"); break;
case 9 : printf("Thang 9 co 30 ngay"); break;
case 10 : printf("Thang 10 co 31 ngay");break;
case 11 : printf("Thang 11 co 30 ngay");break;
case 12 : printf("Thang 12 co 31 ngay");break;
}
}
getch();
}
............................................................................
bài 2 .một mảng 2 chiều các số nguyên (4x3) . tính và in ra tổng một cột k nào đó được nhập
#include"conio.h";
#include"stdio.h";
void main()
{
clrscr();
int a[4][3];
int i,j,k,s;
for(i=1;i<=4;i++)
for(j=1;j<=3;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&a[j]);
}
printf("Nhap so cot:");
scanf("%d",&k);
if(k<1 || k>3)
printf("Nhap sai cot.Ket thuc chuong trinh");
else
{
s=0;
for(i=1;i<=4;i++)
s=s+a[k];
printf("Tong cot %d = %d",k,s);
}
getch()
}


Bài 3 chưa hiểu rõ đề bài lắm :|
 
theo mình nghĩ câu 3 ý để hỏi là mảng có đối xứng hay không. Giá trị a[0]=a[n-1], a[1]=a[n-2],..................
 
bổ sung cho bạn tuấn an 1 dòng lệnh nè

case 2:
if( (Nam % 4 == 0 && Nam % 4 != 0 ) || Nam % 400 == 0) // năm nhuận
Ngay = 29;
else
Ngay = 28;

have fun
.
___________Auto Merge________________

.
bài 3 cũng đơn giản thôi
cho 2 chiều i = 0, j = n - 1, cho chạy đến khi i > j thì dừng
trong vòng lập kiểm tra a == a[j]

<have fun>
 
bổ sung cho bạn tuấn an 1 dòng lệnh nè

case 2:
if( (Nam % 4 == 0 && Nam % 4 != 0 ) || Nam % 400 == 0) // năm nhuận
Ngay = 29;
else
Ngay = 28;

/QUOTE]

Cái này ko tính năm nên ko cần dòng này.Đề bài có ghi rõ mà :)
 
Bài 1:
Mã:
void XuatNgayTrongThang(int thang)
{
	switch(thang)
	{
		case 1: cout<<"Thang "<<thang<<" co 31 ngay";break;
		case 2:
		{
			int nam;
			cout<<"Nhap nam: " ;
			cin>>nam;
			if((nam % 4 == 0 && nam % 100 != 0) || nam % 400 ==0)
				cout<<"Thang "<<thang<<" co 29 ngay";
			else
				cout<<"Thang "<<thang<<" co 28 ngay";
		}
		case 3: cout<<"Thang "<<thang"<<" co 31 ngay";break;
		case 4: cout<<"Thang "<<thang"<<" co 30 ngay";break;
		case 5: cout<<"Thang "<<thang"<<" co 31 ngay";break;
		case 6: cout<<"Thang "<<thang"<<" co 30 ngay";break;
		case 7: cout<<"Thang "<<thang"<<" co 31 ngay";break;
		case 8: cout<<"Thang "<<thang"<<" co 31 ngay";break;
		case 9: cout<<"Thang "<<thang"<<" co 30 ngay";break;
		case 10: cout<<"Thang "<<thang"<<" co 31 ngay";break;
		case 11: cout<<"Thang "<<thang"<<" co 30 ngay";break;
		case 12: cout<<"Thang "<<thang"<<" co 31 ngay";break;
	}
}

Bài 2:
Mã:
int TinhTongCotK(int a[4][3], int k)
{
	int s = 0;
	for(int row = 0; row < 4; row++)
		s+= a[row][k];
	return s;
}

Bài 3:
Mã:
bool KiemTraMangDoiXung(int a[], int n)
{
	for(int i = 0; i < n/2; i++)
		if(a[i] != a[n-1-i]);
			return false;
	return true;
}
 
Back
Top