Bahare Shariat Jild 1 By SadurshSharia Mufti Amjad Ali Azmi
Epc Assignment1 Vn
1. Assigment 1
Câu hỏi 1:
Khai báo các hàm như sau:
• Tìm và trả về số lớn nhất trong N số thực
• Tính chu vi hình tròn bán kính R
• Kiểm tra một số có phải là số nguyên tố không
• Trả về kí tự đầu tiên của chuỗi
Ví du:
Ví dụ khai báo hàm tính và tìm tổng của 2 số nguyên như sau:
int sum(int a, int b);
Câu hỏi 2:
Viết một chương trình nhập vào N chuỗi, lưu các chuỗi này vào trong các phần tử của
mảng, và tìm chuỗi dài nhất (tìm chuỗi có chiều dài dài nhất), chỉ ra các chuỗi có chiều
chiều dài dài nhất. Chương trình phải được tổ chức thành các module như sau:
• Nhập vào số N và tất cả các phần từ của mảng từ thiết bị input của người dùng
(các chuỗi do người dùng nhập vào từ phím).
• Hiển thị kết quả gồm 3 phần:
o Phần một in ra tất cả các phần tử của mảng.
o Phần in ra chiều dài dài nhất (max length).
o Phần 3 in ra tất cả các xâu có chiểu dài dài nhất
Chú ý nhập N<100
Ví dụ:
N=6;
a[0] = abc;
a[1] = a;
a[2] = aabbcc;
a[3] = abbb;
a[4] = aaabbb;
a[5] = 12345;
all string: abc, a, aabbcc, abbb, aaabbb, 12345.
Max length: 6
Longest string (s): aabbccc, aaabbb.
Câu hỏi 3:
Chú ý: chương trình phải tổ chức thành các module(tức tổ chức thành các hàm)
Viết một chương trình dựa trên menu với nội dung như sau:
• Nhập vào N và một mảng các số nguyên
• Tìm số nguyên nhỏ nhất
• Tính tổng các số âm
• Đếm các số chính phương
2. • Thoát
Q1: Nhập vào số N và mảng các số nguyên
Khi người dùng chọn 1 từ menu, làm như sau:
• Đầu tiên, hiển thị N=, và nhập số nguyên dương N(N<100)
• Sau đó, nhập N số nguyên và lưu các số nguyên này vào trong mảng.
Q2: Tìm số dương nhỏ nhất
Khi người dùng chọn số 2 từ menu, tìm số dương nhỏ nhất trong mảng (đã được nhập trong
menu 1) và trả về giá trị này cho hàm main để in ra.
Chú ý: Nếu mảng không có số dương thì trả về 0
Q3: Tính tổng các số âm.
Khi người dùng chọn 3 từ menu chính, tính tổng các số âm trong mảng và in ra
Q4: Đếm các số chính phương
Khi người dùng chọn 4 từ menu chính, đếm tất cả các số chính phương (số chính phương là
số bằng bình phương của một số khác) và trả về giá trị cho hàm main để in ra.
Q5: Thóat(Exit)
Khi người dùng chọn 5 từ menu chính thì thóat khỏi chương trình.
Dap An
Cau 1
//Khai bao cac ham trong cau hoi
//------------------------------------------
float max(float *a, int n);
float dt(float r);
int ktnt(int n);
char kitu(char *s);
//------------------------------------------
cau 2
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <malloc.h>
//---------------------------------
void nhapx(char *s[], int n);
void inx(char *s[], int n);
int Max(char *s[], int n);
void inmax(char *s[],int n,int max);
//---------------------------------
void main()
{
char *s[10];
3. int n;
clrscr();
printf(quot;nNhap vao n = quot;);
scanf(quot;%dquot;,&n);
nhapx(s, n);
printf(quot;nAll string : quot;);
inx(s, n);
printf(quot;nMax length : %dquot;,Max(s, n));
printf(quot;nLongest strin(s) :n quot;);
inmax(s, n, Max(s, n));
getch();
}
//---------------------------------
void nhapx(char *s[], int n)
{
int i;
*s = (char *)malloc(n * sizeof(char));
if (*s==NULL)
{
printf(quot;Khong du bo nhoquot;);
getch();
exit(1);
}
for (i=0; i<n; i++)
{
printf(quot; s[%d] = quot;,i+1);
fflush(stdin);
gets(s[i]);
}
}
//---------------------------------
void inx(char *s[], int n)
{
int i;
for (i=0; i<n; i++)
printf(quot;%s ,quot;,s[i]);
}
//---------------------------------
int Max(char *s[], int n)
{
int i, max = 0;
for (i=0; i<n; i++)
{
if (max < strlen(s[i]) )
max = strlen(s[i]);
}
return max;
}
4. void inmax(char *s[],int n,int max){
int i;
for(i=0;i<n;i++)
if(strlen(s[i])==max) printf(quot;n%squot;,s[i]);
}
/**************************************/
Cau 3
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <malloc.h>
//------------------------------------------
char menu();
int *nhapday(int *a, int n);
void inday(int *a, int n);
void psmall(int *a, int n);
int ntotal(int *a, int n);
int ktcp(int n);
int csqua(int *a, int n);
//------------------------------------------
void main()
{
int *a, n;
char chon;
clrscr();
do
{
chon = menu();
switch(chon)
{
case '1' :{
printf(quot;nEnter N = quot;);
scanf(quot;%dquot;,&n);
a = nhapday(a, n);
break;
}
case '2' :{
printf(quot;nNumber the smallest positive value : quot;);
psmall(a, n);
break;
}
case '3' :{
printf(quot;nTotal of the negative numbers : %dquot;,ntotal(a, n));
break;
5. }
case '4' :{
printf(quot;nCount the square numbers : %dquot;,csqua(a, n));
break;
}
}
}while( chon != '0');
getch();
}
//------------------------------------------
char menu()
{
char c;
printf(quot;nquot;);
printf(quot;n---------------------Menu---------------------quot;);
printf(quot;n1. Input N and array of integer. quot;);
printf(quot;n2. Find the smallest positive value.quot;);
printf(quot;n3. Calculate total of the negative numbers.quot;);
printf(quot;n4. Count the square numbers.quot;);
printf(quot;n0. Exit.quot;);
printf(quot;n----------------------------------------------quot;);
printf(quot;nHay chon : quot;);
do
{
c = getch();
}while( c > '4' || c < '0');
putc(c, stdout);
return c;
}
//------------------------------------------
int *nhapday(int *a, int n)
{
int i;
a = (int *)malloc(n * sizeof(int));
if (a==NULL)
{
printf(quot;Khong du bo nhoquot;);
getch();
exit(1);
}
for (i=0; i<n; i++)
{
printf(quot; A[%d] = quot;,i+1);
scanf(quot;%dquot;,a+i);
}
return a;
}
//------------------------------------------
6. void psmall(int *a, int n)
{
int i, min;
min = 1000;
for (i=0; i<n; i++)
{
if ( (a[i] >0 ) &&(min > a[i]))
min = a[i];
}
printf(quot;%dquot;,min);
}
//------------------------------------------
int ntotal(int *a, int n)
{
int i, sum = 0;
for (i=0; i<n; i++)
{
if ( a[i] < 0)
sum += a[i];
}
return sum;
}
//------------------------------------------
int ktcp(int n)
{
int x;
if ( n< 0 )
return 0;
else
{
x = floor( sqrt(n));
if ( x*x != n)
return 0;
}
return 1;
}
//------------------------------------------
int csqua(int *a, int n){
int i,sum=0;
for(i=0;i<n;i++)
if (ktcp(a[i]) ==1) sum = sum + 1;
return sum;
}