saalek
مدیر بازنشسته
به نقل از Arash_j13 :2.یه رشته بگیرید و کلماتش رو بشمارید و اونها رو نمایش بدید
توجه کنید که از توبع کتابخانه ای سی نباید استفاده کنید
با سلام.
كد را ارسال كردم.

به نقل از Arash_j13 :2.یه رشته بگیرید و کلماتش رو بشمارید و اونها رو نمایش بدید
توجه کنید که از توبع کتابخانه ای سی نباید استفاده کنید
#include <iostream.h>
#include <conio.h>
int i,j,barasi=1;
char source_word[50]={0};
char reverse_word[50]={0};
void main(void)
{
clrscr();
cout<<"give me word ";
cin>> source_word;
for (i=0;i<=100;i++) if (source_word[i]=='\0') break;
i=i-1 ;
for (j=0;j<=i;j++) reverse_word[j]=source_word[i-j];
for (j=0;j<=i;j++) if (source_word[j] != reverse_word[j] ) barasi=0;
if (barasi==0) cout<<"source and reverse are NOT equal";
if (barasi==1) cout<<"source and reverse ARE equal" ;
getch();
}
با سلام.به نقل از Arash_j13 :این رشته رو در نظر بگیردید
ABCBA
این رشته و طولش رو به عنوان پارمتر به تابع می فرستید کارکتر اول با اخر مقایسه می شه در صورت برابر نبودن مقدار نادرست رو بر می گردونید و در صورت برابر بودن دوباره همین تابع رو فراخوانی می کنید ولی برای پامرت هاش ابتدای رشته رو ییه خونه می برید جلو انتهاش رو یکی می یارید عقب توجه کنید که انتها با پارمتر طول مشخص می شه
این کار رو باید اینقدر انجام بدید که طول رشته کوچکتر از دو بشه
#include <iostream>
#include <conio.h>
using namespace std;
inline int getdigit(int,int);
void sort(int *,int,int=1);
const int Max_array=5; //size of array
int main(int argc, char* argv[])
{
int n[Max_array]={9,3,2,10000,1};
sort(n,Max_array); //sort array
//and echo it
for(int i=0;i<Max_array;i++)
cout<<n[i]<<endl;
getch();
return 0;
}
void sort(int * a,int size,int n) // n =1 or 10 or 100 or ... defualt value is one
{
int count[10]={0}, //keep count of every digit
nums[10][Max_array]={0}; // save number in this matrix
bool Continue=false; // if exist any digit this varible is true
for(int i=0,d ; i < size ; i++)
{
d=getdigit(a[i],n); //get current digit
Continue=Continue || (a[i]/(n*10)); // if a[i] have other digit a[i]/(n*10) if true
// and coutinue is true
nums[d][count[d]++]=a[i]; //save number if matrix and increase
//count of this is count[] array
}
//put array into a[] from nums[][]
for(int i=0,k=0; i < 10; i++) //for 0 to 10
for(int j=0;j<count[i];j++) //for 0 to count of every digit
a[k++]=nums[i][j]; //copy mun[i][j] to a[k] and inc k
if (Continue)
sort(a,size,n*10); //sort array for next digit
}
inline int getdigit(int n,int exp)
{
/*
example
n=12345 and exp=1000=10^4 (4th digit)
12345/1000=12
and 12 % 10 =2
*/
return (n/exp)%10;
}
//---------------------------------------------------------------------------
#include <iostream>
#include <conio.h>
using namespace std;
int find(const char *const ,const char *const);
int main()
{
//declare two string for test function
char *s1="It is test".,
*s2="test";
//call function and echo its result
cout<<find(s1,s2);
getch();
return 0;
}//end of main
int find(const char *const str1,const char *const str2)
{
const char *p1, //move in str1
*p2, //mov in str2
*result; //index of str2 in str1
for(p1=str1,p2=str2; *p1 && *p2; ) // loop until str1==NULL or str2==NULL
{
if(*p1==*p2)
{
if(p2==str2) // if p2 in first of str2
result=p2; //copy p2 in result
++p1; //and increase p1 and p2
++p2;
}
else if(p2!=str2) // if p2 is not in first of str2
p2=str2; // return p2 to first of str2 for next step
//and don`t increase p1
else
++p1; // go to nest character
}//end of
if(*p2) // if str2 don`t exist in str1 (when *p2 is not NULL)
return -1; //return -1 to caller
else
return result-str1; //result point to first character of str2 in str1 and
//str1 point to first character of first string
}
#include <iostream.h>
#include <conio.h>
int i,j,barasi=1;
char source_word[50]={0};
char reverse_word[50]={0};
void main(void)
{
clrscr();
cout<<"give me word ";
cin>> source_word;
for (i=0;i<=100;i++) if (source_word[i]=='\0') break;
i=i-1 ;
for (j=0;j<=i;j++) reverse_word[j]=source_word[i-j];
for (j=0;j<=i;j++) if (source_word[j] != reverse_word[j] ) barasi=0;
if (barasi==0) cout<<"source and reverse are NOT equal";
if (barasi==1) cout<<"source and reverse ARE equal" ;
getch();
}
int len;
for(len=0; str[len] ; ++len);
--len;
for(int i=0; str1[i]=str2[i] ; ++i);
به نقل از Arash_j13 :در اخر هم به عنوان سوال این هفته یه ارایه دو بعدی مثلا 5 در 5 رو از ورودی بخونید یا به صورت رندوم پر کنید و بعد مرتبش کنید مرتب کردن به این صورت که کوچکترین عدد رو در خونه 0 0 و بزگرترین رو در خونه 5 5 و مابقی رو به صورت صعودی ما بین اینها بزارید
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
int main()
{
const int arraysize=5;
int my_array[arraysize][arraysize]={ {22,34,5,6,27},
{3,21,55,120,1},
{99,86,25,8,51},
{122,1500,354,1000,200},
{33,156,345,985,450}
};
//clrscr();
cout<<endl<<endl<<"============== adade avalieh =========================="<<endl;
for (int i=0;i<arraysize;i++)
for (int j=0;j<arraysize;j++)
{
if (j==0) cout<<endl;
cout<<setw(j*2+5)<< my_array[i][j];
}
for (int i1=0;i1<arraysize ;i1++)
for (int j1=0;j1<arraysize ;j1++)
for (int i2=0;i2<arraysize ;i2++)
for (int j2=0;j2<arraysize ;j2++)
if ( my_array[i2][j2]>my_array[i1][j1] )
{
int my_temp;
my_temp=my_array[i1][j1];
my_array[i1][j1]=my_array[i2][j2];
my_array[i2][j2]=my_temp;
}
cout<<endl<<endl<<"============== adad be tartibe so,oodi ==============="<<endl;
for (int i=0;i<arraysize;i++)
for (int j=0;j<arraysize;j++)
{
if (j==0) cout<<endl;
cout<<setw(j*2+5)<< my_array[i][j];
}
getch();
}
#include <iostream.h>
#include <conio.h>
long my_number;
int barasi;
char c;
void main()
{
while(c != 'q')
{
barasi=0;
cout<<"give me the number"<<endl;
cin>>my_number;
cout<<"your number is "<<my_number<<endl;
for (long i=my_number-1;i>1;i--)
{
if (my_number%i ==0) {
cout<<" bar "<<i<<" bakhsh pazir ast"<<endl;
barasi=1;
}
}
if (barasi==1) cout<<"so your number IS NOT primary"<<endl;
if (barasi ==0) cout<<"your number IS primary"<<endl;
cout<<" q -> quit / anykey -> repeat"<<endl;
c=getch();
}
}