Tải bản đầy đủ (.doc) (38 trang)

bài giải chi tiết bài tập lập trình c cơ bản

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (70.78 KB, 38 trang )

CÂU 1 (Ý A, B) MẢNG+HÀM: VIẾT CHƯƠNG TRÌNH SỬ DỤNG HÀM
GIẢI

Bài 0
void Getarr(int arr[], int n)
{
int i;
for(i=0; i<=n-1; i++)
{
printf("Nhap arr[%d]: ", i);
scanf("%d", &arr[i]);
}
}
void Showarr(int arr[], int n)
{
int i;
for(i=0; i<=n-1; i++)
{
printf("arr[%d] = %d\n", i, arr[i]);
}
}
int main()
{
int n, arr[100];
do
{
printf("Nhap n: ");
scanf("%d", &n);
} while(n<1 || n>100);
Getarr(arr, n);
Showarr(arr, n);


getch();
return 0;
}


Bài 1
#include <stdio.h>
void nhap(int arr[], int n)
{
int i;
for(i=0; i<=n-1; i++)
{
do{
printf("Nhap arr[%d]: ", i);
scanf("%d", &arr[i]);
} while(arr[i]>0);
}
}
float TBC(int arr[], int n)
{
int i, dem = 0, S = 0;
float TBC=0;
for(i=0; i<=n-1; i++)
{
if(arr[i]<0)
{
S += arr[i];
dem++;
}
}

if(dem!=0)
TBC = (float) S/dem;
else
TBC = 0;
return TBC;
}
int main()
{
int n;
int arr[100];


do
{
printf("Nhap n: ");
scanf("%d", &n);
} while(n<=1 || n>100);
nhap(arr, n);
//
printf("Trung binh = %5.2f", TBC(arr,n));
getch();
return 0;
}

Bài 2
void nhap(int arr[], int n)
{
int i;
for(i=0; i<=n-1; i++)
{

printf("Nhap arr[%d]: ", i);
scanf("%d", &arr[i]);
}
}
float TBC(int arr[], int n)
{
int i, dem = 0, S = 0;
float TBC=0;
for(i=0; i<=n-1; i++)
{
if(arr[i]>=0)
{
S += arr[i];
dem++;
}
}
if(dem!=0)


TBC = (float) S/dem;
else
TBC = 0;
return TBC;
}
int main()
{
int n;
int arr[100];
int i;
do

{
printf("Nhap n: ");
scanf("%d", &n);
} while(n<=1 || n>10);
nhap(arr, n);
//
printf("Trung binh = %5.2f", TBC(arr,n));
getch();
return 0;
}

Bai 3
#include <stdio.h>
void nhap(int arr[], int n)
{
int i;
for(i=0; i<=n-1; i++)
{
printf("Nhap arr[%d]: ", i);
scanf("%d", &arr[i]);
}
}


int checkNT(int n)
{
int i;
int ngto = 1;
for(i=2; i<=sqrt(n); i++)
{

if(n%i==0)
{
ngto = 0;
break;
}
}
return ngto;
}
float TBC(int arr[], int n)
{
int i;
int S=0, dem=0;
float T;
for(i=0; i<=n-1; i++)
{
if(checkNT(arr[i])> 0)
{
S += arr[i];
dem++;
}
}
if(dem==0)
T = 0;
else
T = (float)S/dem;
return T;
}
int main()
{



int n;
int arr[10];
int i;
do
{
printf("Nhap n: ");
scanf("%d", &n);
} while(n<0 || n>10);
nhap(arr, n);
//
printf("Trung binh = %5.2f", TBC(arr, n));
getch();
return 0;
}

Bài 4
#include <stdio.h>
void nhap(int arr[], int n)
{
int i;
for(i=0; i<=n-1; i++)
{
printf("Nhap arr[%d]: ", i);
scanf("%d", &arr[i]);
}
}
int checkCT(int n)
{
int i;

int cp = 1;
if(sqrt(n)*sqrt(n)==n)
cp = 1;
else
cp =0;


return cp;
}
float TBC(int arr[], int n)
{
int i;
int S=0, dem=0;
float T;
for(i=0; i<=n-1; i++)
{
if(checkCT(arr[i])> 0)
{
S += arr[i];
dem++;
}
}
if(dem==0)
T = 0;
else
T = (float)S/dem;
return T;
}
int main()
{

int n;
int arr[10];
int i;
do
{
printf("Nhap n: ");
scanf("%d", &n);
} while(n<0 || n>10);
nhap(arr, n);


//
printf("Trung binh = %5.2f", TBC(arr, n));
getch();
return 0;
}

Bài 5
#include <stdio.h>
#include <math.h>
void nhap(int arr[], int n)
{
int i;
for(i=0; i<=n-1; i++)
{
printf("Nhap arr[%d]: ", i);
scanf("%d", &arr[i]);
}
}
int checkCT(int n)

{
int i;
int cp = 1;
if(sqrt(n)*sqrt(n)==n)
cp = 1;
else
cp =0;
return cp;
}
float TBC(int arr[], int n)
{
int i;
int S=0, dem=0;
float T;
for(i=0; i<=n-1; i++)
{
if(checkCT(arr[i])> 0)


{
S += arr[i];
dem++;
}
}
if(dem==0)
T = 0;
else
T = (float)S/dem;
return T;
}

int main()
{
int n;
int arr[10];
int i;
do
{
printf("Nhap n: ");
scanf("%d", &n);
} while(n<0 || n>10);
//
nhap(arr, n);
//
printf("Trung binh = %5.2f", TBC(arr, n));
getch();
return 0;
}

Bài 6
#include <stdio.h>
void nhap(int arr[], int n)
{
int i;


for(i=0; i<=n-1; i++)
{
printf("Nhap arr[%d]: ", i);
scanf("%d", &arr[i]);
}

}
float TBC(int arr[], int n)
{
int i;
int S=0, dem=0;
float TBC;
for(i=0; i<=n-1; i++)
{
if(arr[i]%2==0 && arr[i]%3==0)
{
S += arr[i];
dem++;
}
}
if(dem==0)
TBC = 0;
else
TBC = (float)S/dem;
return TBC;
}
int main()
{
int n, i;
int arr[15];
do
{
printf("Nhap n: ");
scanf("%d", &n);
} while(n<0 || n>15);
//



nhap(arr, n);
//
printf("TBC = %5.2f", TBC(arr, n));
//
getch();
return 0;
}

Bài 7
#include <stdio.h>
void nhap(int arr[], int n)
{
int i;
for(i=0; i<=n-1; i++)
{
printf("Nhap arr[%d]: ", i);
scanf("%d", &arr[i]);
}
}
float TBC(int arr[], int n)
{
int i;
int S=0, dem=0;
float TBC;
for(i=0; i<=n-1; i++)
{
if(arr[i]%2!=0 && arr[i]%5==0)
{

S += arr[i];
dem++;
}
}
if(dem==0)
TBC = 0;
else
TBC = (float)S/dem;


return TBC;
}
int main()
{
int n, i;
int arr[15];
do
{
printf("Nhap n: ");
scanf("%d", &n);
} while(n<0 || n>15);
//
nhap(arr, n);
//
printf("TBC = %5.2f", TBC(arr, n));
//
getch();
return 0;
}


Bài 8
#include <stdio.h>
void Getmax(int arr[], int n)
{
int i;
int maxValule;
int maxCS;
maxValule = arr[0];
maxCS = 0;
for(i=0; i<=n; i++)
{
if(arr[i]>maxValule)
{
maxValule = arr[i];


maxCS = i;
}
}
printf("Gia tri lon nhat trong mang = %d\n", maxValule);
printf("Chi so = %d", maxCS);
}
void nhap(int arr[], int n)
{
int i;
for(i=1; i<=n; i++)
{
printf("arr[%d]: ", i);
scanf("%d", &arr[i]);
}

}
int main()
{
int arr[100];
int n;
printf("Nhap n: ");
scanf("%d", &n);
nhap(arr, n);
Getmax(arr, n);
getch();
return 0;
}

Bài 9
#include <stdio.h>
void nhap(int arr[], int n)
{
int i;
for(i=0; i<=n-1; i++)
{
printf("Nhap arr[%d]: ", i);


scanf("%d", &arr[i]);
}
}
int min(int arr[], int n)
{
int i;
int min=arr[0], mini = 0;

for(i=0; i{
if(arr[i]{
min = arr[i];
mini = i;
}
}
printf("Phan tu co gia tri nho nhat la: arr[%d] = %d", mini, min);
}
int main()
{
int n, arr[100];
do
{
printf("Nhap n: ");
scanf("%d", &n);
} while(n<1 || n>100);
nhap(arr, n);
min(arr, n);
getch();
return 0;
}

Bài 10 + 11
Tăng đần > còn giảm dần <. Trong dòng
#include <stdio.h>
#include <conio.h>
int main()


if (a[i] > a[j])


{
int a[100], i, j, n, temp;
printf("Nhap so phan tu:");
scanf("%d",&n);
for (i=0;i{
printf("\nNhap a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\n");
for (i = 0; i < n; i++) printf("%d ",a[i]);
for (i = 0; i < n - 1; i++)
for (j = i + 1; j < n; j++)
{
if (a[i] > a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
for (j=0; jgetch();
}

Bài 12
#include <stdio.h>

#include <math.h>
void nhap(int arr[], int n)
{
int i;
for(i=0; i<=n-1; i++)
{
printf("Nhap arr[%d]: ", i);
scanf("%d", &arr[i]);
}
}


int checkNT(int arr[])
{
int i, NT=1;
for(i=2; i<=sqrt(arr[i]); i++)
{
if(arr[i]%i==0)
{
NT=0;
break;
}
if(NT==1)
printf("%d ", arr[i]);
}
}
int main()
{
int n, i;
int arr[100];

do
{
printf("Nhap n: ");
scanf("%d", &n);
} while(n<1 || n>100);
//
nhap(arr, n);
//
checkNT(arr);
//
getch();
return 0;
}

Bài 31
#include <stdio.h>
#include <math.h>


void nhap(int arr[], int n)
{
int i;
for(i=0; i<=n-1; i++)
{
printf("Nhap arr[%d]: ", i);
scanf("%d", &arr[i]);
}
}
int checkNT(int arr[], int n)
{

int i, NT=1, dem=0;
for(i=2; i<=sqrt(arr[i]); i++)
{
if(arr[i]%i==0)
{
NT=0;
break;
dem++;
}
}
if(dem==n)
printf("Mang co so khong phai nguyen to");
if(dem!=n)
printf("Mang toan nguyen to");
}
int main()
{
int n, i;
int arr[15];
do
{
printf("Nhap n: ");
scanf("%d", &n);
} while(n<0 || n>15);
//


nhap(arr, n);
//
checkNT(arr, n);

//
getch();
return 0;
}
II. CÂU 1 (Ý C): VIẾT HÀM GIẢI QUYẾT CÁC BÀI TOÁN SAU:

Bài 1
#include <stdio.h>
int Max(int tram, int chuc, int dvi)
{
int max = tram;
if(chuc>max)
max = chuc;
if(dvi>max)
max = dvi;
return max;
}
char* vtri(int tram, int chuc, int dvi)
{
char* max = "tram";
if(chuc>tram)
max = "chuc";
if(dvi>tram && dvi>chuc)
max = "don vi";
return max;
}
int main()
{
int n;
int tram, chuc, dvi, du;



do
{
printf("Moi nhap so: ");
scanf("%d", &n);
} while(n<100 || n>999);
tram = n/100;
du = n%100;
chuc = du/10;
dvi = du%10;
printf("So lon nhat la %d nam o hang %s", Max(tram, chuc, dvi),
vtri(tram, chuc, dvi));
getch();
return 0;
}

Bài 2
#include <stdio.h>
int Getmax(int tram, int chuc, int dvi)
{
int max;
if(max=tram)
{
if(chuc>max)
max = chuc;
if(dvi>max)
max = dvi;
}
return max;

}
int Getmin(int tram, int chuc, int dvi)
{
int min = tram;
if(min=tram)
{
if(chuc

min = chuc;
if(dvimin = dvi;
}
return min;
}
int Getmid(int tram, int chuc, int dvi)
{
int mid, max, min;
min = Getmin(tram, chuc, dvi);
max = Getmax(tram, chuc, dvi);
mid = tram;
if(chuc != max && chuc != min)
mid = chuc;
if(dvi != max && dvi != min)
mid = dvi;
return mid;
}
int main()
{
int n;

int tram, chuc, dvi, du;
do
{
printf("Moi nhap so: ");
scanf("%d", &n);
} while(n<100 || n>999);
tram = n/100;
du = n%100;
chuc = du/10;
dvi = du%10;
printf("Thu tu cua %d la: %d%d%d", n, Getmin(tram,chuc,dvi),
Getmid(tram,chuc,dvi), Getmax(tram,chuc,dvi));


getch();
return 0;
}

Bài 3
#include <stdio.h>
int thang(int n, int m )
{
int songay;
if((n==1) || (n==3) || (n==5) || (n==7) || (n==8) || (n==10) || (n==12))
songay = 31;
else if(n==2 && m%4==0)
songay = 29;
else if(n==2 && m%4!=0)
songay = 28;
else

songay = 30;
return songay;
}
int main()
{
int n, m;
do
{
printf("Moi nhap thang, nam: ");
scanf("%d%d", &n, &m);
} while(n<1 || n>12);
printf("Thang %d nam %d co %d ngay", n, m, thang(n, m));
getch();
return 0;
}

Bài 4
#include <stdio.h>
int main()


{
int n;
printf("Moi nhap so: ");
scanf("%d", &n);
ngto(n);
getch();
return 0;
}
int ngto(int n)

{
int i, j;
int dem=0, NT;
for(i=2; dem{
NT=1;
for(j=2; j<=sqrt(i); j++)
{
if(i%j==0)
NT=0;
}
if(NT==1)
{
printf("%d ", i);
dem++;
}
}
}

Bài 5
#include <stdio.h>
int Maxmin(int a, int b)
{
int max, min;
if(max = a)
min = b;
if(max = b)


min = a;

}
int UCLN(int a, int b)
{
int i, max, min, ucln;
for(i=1; i<=min; i++)
{
if(a%i==0 && b%i==0)
{
ucln = i;
}
}
return ucln;
}
int BCNN(int a, int b)
{
int i, max;
int bcnn;
for(i=max; 1==1; i++)
{
if(i%a==0 && i%b==0)
{
bcnn = i;
break;
}
}
return bcnn;
}
int main()
{
int x, y;

printf("Moi nhap 2 so: ");
scanf("%d%d", &x, &y);
//


Maxmin(x, y);
//
printf("Uoc chung lon nhat la: %d\nBoi chung nho nhat la: %d",
UCLN(x, y), BCNN(x, y));
getch();
return 0;
}

Bài 7.1
#include <stdio.h>
float S(int n)
{
int i;
int mau = 0;
float ptu = 0, S = 0;
for(i=1; i<=n; i++)
{
mau += i*i;
ptu = (float) 1/mau;
if(i%2 == 0)
S += ptu;
else
S -= ptu;
}
return S;

}
int main()
{
int n;
printf("Nhap n: ");
scanf("%d", &n);
printf("S = %5.2f", S(n));
getch();
return 0;
}


Bài 7.2
#include <stdio.h>
int S(int n)
{
int i;
int gthua = 1, S = 0;
for(i=1; i<=n; i++)
{
gthua *= i;
if(i%2==0)
S -= gthua;
else
S += gthua;
}
return S;
}
int main()
{

int n;
printf("Nhap n: ");
scanf("%d", &n);
printf("S = %d", S(n));
getch();
return 0;
}

Bài 7.3
#include <stdio.h>
float S(int n)
{
int i, gthua = 1, mau = 1;
float ptu = 1;
float S= 0;
for(i=1; i<=n; i++)
{


×