Lập trình C: Đề 18
Câu 1:
1. int lonnhat(int a, int b, int c);
2. void nhap(int *N, int a[]);
3. void nhap(int *N);
4. void timchuoi(int N, char a[][25]);
Câu 2:
#include <stdio.h>
#include <conio.h>
#include <math.h>
void nhap(int *a, int *b, int *c)
{
do
{
printf("\na = ");
scanf("%d",a);
}while(*a<=0);
do
{
printf("\nb = ");
scanf("%d",b);
}while(*b<=0);
do
{
printf("\nc = ");
scanf("%d",c);
}while(*c<=0);
}
void usc(int a, int b, int c, int d[], int *n)
{
int i,j=0;
//Cach lam don gian nhat (cach nay khong toi uu)
for(i=1; i<=fabs(a); i++) //fabs(a) la ham lay tri tuyet doi cua a
if(a%i==0 && b%i==0 && c%i==0) //Neu ca 3 so a, b, c deu chia het cho i
{
d[j++]=i; //thi i la usc, va i se duoc luu vao mang d
*n=j; //roi gan j cho *n de luu so luong usc cua a, b, c
}
}
int maxabc(int a, int b, int c)
{
int maxx;
maxx=a;
if(maxx<b)
maxx=b;
if(maxx<c)
maxx=c;
return maxx;
}
void main()
{
int a,b,c,*d,n,i; //*d dung de luu cac uoc so chung cua 3 so, n la so luong cac uoc so chung cua 3 so.
clrscr();
nhap(&a,&b,&c);
usc(a,b,c,d,&n);
printf("\nCo %d uoc so chung cua %d, %d va %d. Cu the la:",n,a,b,c);
for(i=0; i<n; i++)
printf("\n%d",d[i]);
printf("\nSo lon nhat trong 3 so la: %d",maxabc(a,b,c));
getch();
}
Câu 3:
#include <stdio.h>
#include <conio.h>
#include <string.h>
void menu(void)
{
printf("\n1. Nhap N va N chuoi");
printf("\n2. In cac chuoi");
printf("\n3. Dao nguoc chuoi cuoi cung");
printf("\n4. Tim chuoi doi xung");
printf("\n5. Thoat");
}
void nhap(int *N, char a[][25])
{
int i;
do
{
printf("\nN = ");
scanf("%d",N);
}while(!(0<*N && *N<20));
printf("\nNhap cac chuoi:");
for(i=0; i<*N; i++)
{
printf("\na[%d] = ",i);
fflush(stdin);
gets(a[i]);
}
}
void inAn(int N, char a[][25])
{
int i;
printf("\nCac chuoi sau khi nhap:");
for(i=0; i<N; i++)
printf("\na[%d] = %s",i,a[i]);
}
void inNguoc(int N, char a[][25])
{
char *p;
int i;
strcpy(p,a[N-1]);
strrev(p);
printf("\nDao nguoc chuoi cuoi cung: %s",p);
}
void doiXung(int N, char a[][25])
{
cha *p;
int i,j,dem=0;
for(i=0; i<N; i++)
{
strcpy(p,a[i]);
strrev(p);
if(strcmp(p,a[i])==0)
dem++;
}
if(dem==0)
printf("\nKhong co chuoi doi xung nao");
else
printf("Co %d chuoi doi xung. Nhung chuoi do la:",dem);
for(i=0; i<N; i++)
{
strcpy(p,a[i]);
strrev(p);
if(strcmp(p,a[i])==0)
printf("\n\"%s\"",a[i]);
}
}
void main()
{
int chon, N;
char a[19][25];
clrscr();
while(1) {
menu();
printf("\nMoi ban chon mot muc: ");
scanf("%d",&chon);
switch(chon) {
case 1: nhap(&N,a); break;
case 2: inAn(N,a); break;
case 3: inNguoc(N,a); break;
case 4: doiXung(N,a); break;
case 5: return;
}
}
getch();
}