چند تمرین به زبان c
تمرین شماره 1
include
#include
#include
int main()
{ int *x, *y, s;
clrscr();
x = (int *) malloc(sizeof(int));
if(!x){ printf(“\n allocation failure.”);
exit(1); }
y = (int *) malloc(sizeof(int));
if(!y){ printf(“\n allocation failure.”);
exit(1); }
printf(“\n enter two integers:”);
scanf(“%d%d”, x, y);
s = *x * *x + *y * *y;
printf(“\n sum of square is:%d”, s);
free(x);
free(y);
getch();
return 0;}
enter two integers:150
200
sum of square is:-3036
تمرین شماره 2
#include
#include
void swap(int *, int *);
int main()
{
int x = 10, y = 20 ;
clrscr();
printf("\n first value of x,y are:%d, %d", x, y) ;
swap(&x, &y);
printf("\n final value of x, y are:%d, %d", x, y) ;
getch();
return 0;
}
void swap(int *a, int *b)
{
int temp ;
temp=*a ;
*a=*b ;
*b=temp ;
}
first value of x,y are:10, 20
final value of x, y are:20, 10
تمرین شماه 3
#include
#include
void winput(int *, int *);
void rect(int, int, int *, int *);
int main()
{
int len, wid, area, per;
clrscr();
winput(&len, &wid);
rect(len, wid, &area, &per);
printf(" length = %d, width = %d", len, wid);
printf("\n area = %d, perimer = %d", area, per);
getch();
return 0;
}
//**************************
void winput(int *p1, int *p2)
{
printf(" enter length, width :");
scanf("%d%d", p1, p2);
}
//***************************
void rect(int x, int y, int *a, int *p)
{
*a = x * y;
*p = 2 * (x + y);
}
enter length, width :15
20
length = 15, width = 20
area = 300, perimer = 70
تمرین شماره 4
#include
#include
#include
void check(char *a, char *b, int (*cmp)(const char *, const char *));
//int cmp(char *, char *);
int main()
{
char s1[80], s2[80] ;
int (*p)(const char *, const char *);
clrscr();
p = strcmp;
printf(" enter first string :") ;
gets(s1) ;
printf(" enter second string :") ;
gets(s2) ;
check(s1, s2, p);
getch();
return 0;
}
//*********************
void check(char *a, char *b, int (*cmp)(const char *, const char *))
{
if(!(cmp)(a, b))
printf(" the strings are equal.");
else
printf(" strings are not equal.");
}
تمرین شماره 5
enter first string :ali
enter second string :reza
strings are not equal.
#include
#include
int main()
{
int arr[5] ,i ;
clrscr();
printf("\n enter five value :") ;
for(i=0 ; i<5 ; i++)
scanf("%d",&arr[i]) ;
printf("\n the reverse output is :");
for(i=4 ; i>=0 ; i -- )
printf("%4d",*(arr+i)) ;
getch();
return 0;
}
enter five value :5
2
3
5
5
the reverse output is : 5 5 3 2 5
تمرین شماره 6
#include
#include
#include
void pinput(int *, int);
void bubble(int *, int);
void median(int *, int, float *);
void pout(int *, int);
int main()
{
int n, i;
int *p;
float mead;
clrscr();
printf(" enter number of items(n):");
scanf("%d", &n);
p = (int *)malloc(n * sizeof(int));
if(!p){
printf(" aloocation failure!");
getch();
exit(1);
}
pinput(p, n);
bubble(p, n);
printf("\n sorted data are:");
pout(p, n);
median(p, n, &mead);
printf("\n median = %5.2f", mead);
getch();
return 0;
}
//*****************************
void pinput(int *p, int n)
{
int i;
for(i = 0; i < n; i ++){
printf("enter number %d:", i + 1);
scanf("%d", p + i);
}
}
//*****************************
void bubble(int *temp, int len)
{
int i, j, item;
for(i = len - 1 ; i > 0; i --)
for(j = 0; j < i ; j++)
if(*(temp + j) > *(temp + j + 1)) {
item = *(temp + j);
*(temp + j) = *(temp + j + 1);
*(temp + j + 1) = item ;
}//end of if
}
//*************************
void median(int *x, int n, float *mead)
{ if(n % 2 == 0)
*mead =(float) (*(x + ((n - 1) / 2)) + *(x + (n / 2))) / 2;
else
*mead = *(x + (n - 1) / 2);}
//****************
void pout(int *p, int n)
{ int i;
for(i = 0; i < n; i ++){
printf("%3d",*(p+i)); }
printf("\n");
}
enter number of items(n):10
enter number 1:15
enter number 2:25
enter number 3:62
enter number 4:5
enter number 5:55
enter number 6:52
enter number 7:54
enter number 8:1
enter number 9:4
enter number 10:56
sorted data are: 1 4 5 15 25 52 54 55 56 62
median = 38.50
تمرین شماره 7
#include
#include
int char_count(char *, char);
int main()
{
char string[40] , ch ;
int count ;
clrscr();
printf(" enter string for search:");
gets(string) ;
printf(" enter a character:") ;
ch = getche() ;
count = char_count(string, ch) ;
printf("\n number of occurs of char ") ;
printf(" <%c> is:%d", ch, count);
getch();
return 0;
}
//******************
int char_count(char *s, char letter)
{
int count=0 ;
while(*s)
if(*s++ == letter)
count ++ ;
return(count) ;
}
enter string for search:ali
enter a character:a
number of occurs of char is:1
تمرین شماره 8
#include
#include
first_dif(char *, char *, int);
int main()
{
char st1[40], st2[40] ;
int compcase = 1 ;
clrscr();
printf(" enter first string:") ;
gets(st1) ;
printf(" enter second string:");
gets(st2) ;
first_dif(st1, st2, compcase) ;
getch();
return 0;
}
//********************
first_dif(char *s1, char *s2, int ignore_case)
/* if ignore_case is 1 ,ignore case
of letter */
{
int i ;
char a , b ;
for(i = 0; *s1 && *s2; s1++, s2++, i++)
if(*s1 != *s2) {
if(ignore_case) {
a = (*s1 >= 'a' && *s1 <= 'z') ? *s1 -= 32 : *s1;
b = (*s2 >= 'a' && *s2 <= 'z') ? *s2 -= 32 : *s2;
if(a != b)
break ;
}//end of if
else
break;
}//end of if
if(*s1 || *s2) {
printf("\n strings are not equal,");
printf(" the first difference occurs in :%d", i + 1);
}
else
printf("\n strings are equal .") ;
}
enter first string:ali reza
enter second string:ebrahim ghomi
strings are not equal, the first difference occurs in :1
تمرین شماره 9
#include
#include
void ascii_to_int(int *, char *);
int main()
{
int number ;
char s[10] ;
clrscr();
printf("\n enter numeric string:");
gets(s) ;
ascii_to_int(&number, s) ;
printf(" numeric value is:%d", number) ;
getch();
return 0;
}
//**************************
void ascii_to_int(int *value, char *str)
{
int sign = 1 ;
*value = 0 ;
while(*str == ' ') str++ ;
if(*str== '-' || *str == '+')
sign = (*str ++ == '-') ? -1 : 1;
while(*str)
if((*str >= '0') && (*str <= '9'))
*value = (*value * 10) + (*str ++ -48) ;
else {
printf("Watning :the <%c> is invalid character.\n", *str);
break ;
}
*value *=sign ;
}
enter numeric string:ebrahim ghomi 8705060503
Watning :the
numeric value is:0
تمرین شماره 10
#include
#include
void int_to_ascii(int , char *);
int main()
{
int number ;
char s[10] ;
clrscr();
printf(" enter a number :");
scanf("%d", &number) ;
int_to_ascii(number, s) ;
printf(" the string value is:%s", s);
getch();
return 0;
}
//**********************************
void int_to_ascii(int value, char *str)
{
int saveval= value ;
char temp, *savestr = str ;
if(value < 0)
value *= -1 ;
do{
*str ++ = (value % 10) + 48 ;
value = value / 10 ;
} while(value > 0);
if (saveval < 0)
*str++ = '-' ;
*str -- = '\0' ;
while(savestr < str) {
temp = *str ;
*str -- =* savestr ;
*savestr ++ = temp ;
}
}
enter a number :125
the string value is:125
تمرین شماره 11
#include
#include
int main()
{
char *text="your name is:";
char name[41];
clrscr();
printf("\n enter your name :") ;
gets(name) ;
printf(" %s" ,text);
puts(name) ;
getch();
return 0;
}
enter your name :ebrahim ghomi
your name is:ebrahim ghomi
تمرین شماره 12
#include
#include
#include
int main()
{
int dex;
const int k = 5;
char name[21];
char *list[k]=
{"ali",
"ahmad",
"alireza",
"jalal",
"mohammad"
} ;
clrscr();
printf(" enter a name for search:") ;
gets(name);
for(dex = 0; dex
if(!strcmp(list[dex], name))
break ;
if(dex == k)
printf(" name <%s> not exist.", name) ;
else
printf(" name <%s> exist.", name);
getch();
return 0;
}
enter a name for search:ebrahim ghomi
name
تمرین شماره 13
#include
#include
#include
int main()
{
char name[30][81];
char *ptr[30], *temp;
int in, out, count = 0;
const int k = 30 ;
clrscr();
while(count < k) {
printf(" enter name of number %d:", count + 1);
gets(name[count]) ;
if(!name[count][0])
break ;
*(ptr + count ++) = name[count] ;
}
for(out = 0; out < count - 1; out ++)
for(in = out + 1; in < count; in++)
if(strcmp(*(ptr + out), *(ptr + in)) > 0){
temp = *(ptr + in) ;
*(ptr + in) = *(ptr + out) ;
*(ptr + out) = temp ;
}
printf("<< the sorted list is:>>\n");
for(out = 0 ; out < count ; out ++)
printf("\n name %d is:%s", out + 1, *(ptr + out));
getch();
return 0;
}
enter name of number 13:54
enter name of number 14:24
enter name of number 15:54
enter name of number 16:54
enter name of number 17:24
enter name of number 18:8
enter name of number 19:5
enter name of number 20:54
enter name of number 21:54
enter name of number 22:24
enter name of number 23:54
enter name of number 24:54
enter name of number 25:54
enter name of number 26:54
enter name of number 27:54
enter name of number 28:548
enter name of number 29:4
enter name of number 30:5
<< the sorted list is:>>
name 1 is:1256
name 2 is:2
name 3 is:2
name 4 is:24
name 5 is:24
تمرین شماره 14
#include
#include
main()
{
int x , *p ;
clrscr();
x = 10 ;
*p = x ;
printf("\n %d", *p) ;
getch();
return 0;
}
10
ابراهیم قمی اویلی