-
برا برنامه دوم من اينو نوشتم ولي بازم متاسفانه اشتباهه.
#include <stdio.h>
void main()
{
int n,i,digit;
n>=0;
printf("enter a number\n");
scanf("%d",&n);
while (!(n<10))
{
printf("%d",n%10);
n=n/10;
}
printf("%d",&n);
while (!(n<10))
{
printf("%d\n",n%10);
n=n/10;
}
printf("\n%d",&n);
}
-
دوباره سلام.
در نوشتن برنامه ها عجله میکنید.
برنامه ها تون مشکل خاصی نداره. الگوریتمها درسته .فقط عجله میکنید.
کد:
#include <stdio.h>
void main()
{
int n;
printf("enter a number\n");
scanf("%d",&n);
while ( n >= 10 )
{
printf("%d\n",n%10);
n = n / 10;
if ( n < 10 )
printf("%d\n",n);
}
}
-
نه نه اين برنامه عدد 123 رو چاپ مي كنه:
3
2
1
ولي من مي خوام چاپ كنه
1
2
3
-
دوباره سلام.
میتونید از آرایه ها استفاده کنید.
مقادیر رو در یک آرایه از نوع int ذخیره کنید و در آخر آرایه رو معکوس نشون بدید.
کد:
#include <stdio.h>
#define _MAX 64
void main()
{
int n , j;
int nStr[_MAX], i = 0;
printf("enter a number\n");
scanf("%d",&n);
while ( n >= 10 )
{
nStr[i] = n%10;
n = n / 10;
if ( n < 10 )
{
i++;
nStr[i] = n;
}
i++;
}
for (j=i-1;j>=0;j--)
printf("%d\n",nStr[j]);
}
-
ولي من جوابو بدون استفاده از آرايه ها مي خوام.
-
ببخشيد جواب سلام رو يادم رفت بگم.
البته پيش خودم بهتون جواب دادما.
-
کدی که براتون گذاشتم بهینه نیست و نیاز به اصلاح داره.
خودتون کاملش کنید. در ضمن برنامه ها رو خودتون باید بنویسید.
کد:
#include <stdio.h>
#include <math.h>
void main()
{
int n , i = 0;
int tmp , con , m;
printf("enter a number\n");
scanf("%d",&n);
tmp = n;
while ( n >= 10)
{
n = n/10;
i++;
}
con = (int)pow((double)10,(double)i);
n = tmp;
if ( n >= 10)
{
n /= con;
printf("%d\n" ,n);
n = tmp;
while ( tmp >= 10 )
{
m = tmp % con;
con /= 10;
tmp = m % con;
m /= con;
printf("%d\n",m);
}
if( n >= 100 )
printf("%d\n",n%10);
}
else
printf("%d\n",n);
}
-
سلم دوستان
ممنون مي شسم اگه دوباره كمكم كنيد.
يه سري برنامه دارم كه نوشتم ولي ارور مي دن. مي نويسم و خواهش مي كنم راهنماييم كنيد.
1_ اين قراره برنامه اي باشه با يك ساختار دو فيلدي كه يه فيلدش رشته باشه و اون يكي آرايه اي از رشته ها كه بعد يه متغير از نوع اين ساختار تعريف بشه و روش مقداردهي هنگام تعريف بشه و بعد هم اين مقدارها چاپ بشه.
کد:
#include <stdio.h>
struct M
{
char st [3];
char name [2][5];
}M={"ALI",{"AKBAR","REZA"}
void main()
{
printf("%s",st[3]);
printf("\n%s", name[0]);
printf("\n%s", name[1]);
}
2_ قراره دو عدد صحيح 100 رقمي رو با هم جمع كنه با اين شكل كه دو عدد رو به صورت رشته هايي 101 عنصري تعريف كنه.
#include <stdio.h>
#define MAX1 101;
#define MAX2 101;
{
struct plus
{
int p1;
int p2;
}p1,p2{st MAX1,st MAX2};
void main()
{
struct plus;
scanf("%s",p1);
scanf("%s",p2);
printf("%s",p1+p2);
};
}
-
3_ قراره به روش Binary search يه مقدار رو تو آرايه جستجو كنه. يعني اول با فرض اين كه آرايه ها صعودي يا نزولي مرتب شدن نقطه وسط آرايه رو با مقدار جستجو مقايسه كنه. اگه برابر بود كه هيچ وگرنه با توجه به اين كه يا بزرگ تره يا كوچك تر تو يكي از دو نيمه كار رو با همين شيوه ادامه بده تا بالاخره عنصر رو پيدا كنه.
کد:
#include <stdio.h>
void main()
{
int n,i;
float B[10];
for (i=0;i<10;++i)
scanf("%f",B[i]);
while (18 !=B[i/2])
{
struct B
{
float B1;
float B2;
}B1,B2={{B[0],B[1],B[2],...,B[n/2]},{ B[n/2],B[n/2 +1],...,B[n]}}
if (18<B[n/2])
B=B1;
else
if (18>B[n/2])
B=B2;
}//end of while
printf("%f",B[n/2]);
}
4_ برج هاي هانوي رو به شكل بازگشتي پياده كنه.( يعني مثلا وقتي 4 ديسك داريم كه روي ميله ي 1 هستن و مي خواهيم به ميله 3 ببريم با توجه به اين كه ميله 2 رو هم داريم و به هيچ وجه تو اين انتقال ديسك بزرگ نبايد روي ديسك كوچك باشه. تعداد اين انتقال ها براي 4 ديسك و n ديسك چقدره؟)
کد:
#include <stdio.h>
int f(int x)
{
if (x==1)
return 1;
else
return (2*f(x-1))+1;
};
void main ()
{
printf("%d",f(4));
}
-
يه برنامه هم مي خوام كه به صورت بازگشتي همه ي جايگشت هاي يه رشته رو چاپ كنه مثلا براي abc داشته باشيم:
abc
acb
bac
bca
cab
cba
اين هم قراه يه رشته از كاربر بگيره و مجموع ارقام اون رو چاپ كنه. مثلا براي a4w2 چاپ كنه 6
کد:
#include <stdio.h>
void main()
{
int sum=0;
int i;
char st [100];
scanf("%s",&st[100]);
for (i=0;i<100;++i)
if(st[i]>=48 || st[i]<=57)
sum+=st[i];//end of for
printf("%d=sum", &sum);
}