با ++Visual C اجرا کردم..نقل قول:
Printable View
با ++Visual C اجرا کردم..نقل قول:
سلام .خسته نباشی
من این برنامه رو میخوام با تابع بنویسم یه تابع برای ورودی و یه تابع برای محاسبه معدل و یکی هم برای خروجی.........
یه چیزایی نوشتم یه نگاهی کن ببین کجای کارم اشتباست این تابع رو برای محاسبه معدل نوشتم راستی میشه برای ورودی وخروجی هم از تابع استفاده کرد....کد:#include<stdio.h>
#include<conio.h>
void main()
{
clrscr();
struct student
{
char name[10];
int stno;
float marks[5];
}s1[5];
for(int j=0;j<2;j++)
{
int k=j;
k++;
printf("student name%d:",k);
scanf("%s",s1[j].name);
printf("student number%d:",k);
scanf("%d",&s1[j].stno);
for(int i=0;i<2;i++)
{
float f;
printf("student mark%d:",k);
scanf("%f",&f);
s1[j].marks[i]=f;
}
}
for(int r=0;r<2;r++)
{
printf("student name:%s\n",s1[r].name);
printf("student number:%d\n",s1[r].stno);
float sum=0;
for(int g=0;g<2;g++)
{
sum+=s1[r].marks[g];
}
printf("student average:%f\n",sum/2);
}
getch();
}
کد:#include<stdio.h>
#include<conio.h>
float getavg(float *a[2].marks[2],int size)
{
float sum=0;
for(int i=0;i<size;i++)
{
for(int g=0;g<size;g++)
{
sum+=a[i].marks[g];
}
return(sum/size);
}
}
//__________________________________________________
void main()
{
clrscr();
struct student
{
char name[10];
int stno;
float marks[2];
}s1[2];
//--------------------------------------------------
float f,x,avg;
for(int j=0;j<2;j++)
{
int k=j;
k++;
printf("student name%d:",k);
scanf("%s",s1[j].name);
printf("student number%d:",k);
scanf("%d",&s1[j].stno);
for(int i=0;i<2;i++)
{
printf("student mark%d:",k);
scanf("%f",&f);
x=s1[j].marks[i]=f;
avg=getavg(x,2);
}
}
for(int r=0;r<2;r++)
{
printf("student name:%s\n",s1[r].name);
printf("student number:%d\n",s1[r].stno);
printf("student average:%f\n",avg);
}
getch();
}
سلام ببخشید یه سوال داشتم !!! حتما جوابم بدینا !!!
می خوام برنامه ی فاکتوریل رو برای عددهای بین 20-40 بنویسم ! از چه نوع داده ای استفاده کنم ؟ باید با حافظه پویا کار کنم؟ چه جوری؟؟
این برنامه یه عدد از ورودی میگیره و فاکتوریلش رو حساب میکنه البته با استفاده از تابع نوشتم یه نگاهی به روش کاربرنامه کن ....نقل قول:
کد:#include<stdio.h>
#include<conio.h>
//**********Function Factorial
int sum=1;
int fact(int num)
{
for(int i=1;i<=num;i++)
{
sum*=i;
}
return (sum);
}
//**********Program Body
void main()
{
clrscr();
int num;
printf("plese,Type a number:");
scanf("%d",&num);
printf("Factorial is:%d",fact(num));
getch();
}
مرسی از توجه تون !برنامه درسته ! ولینقل قول:
این برنامه یه عدد از ورودی میگیره و فاکتوریلش رو حساب میکنه
داده ی int حجمش اونقدر زیاد نیست که فاکتوریل اعداد بین 20-40 رو حساب کنه ! این برنامه برای اعداد کوچیک کار می کنه .نقل قول:
int sum=1;
لطفا اگه بقیه هم می تونن راهنماییم کنن !
سلام،نقل قول:
برنامه فاكتوريل از لحاظ نوشتاري والگوريتم بسيار ساده است و در واقع يك ضرب است كه در يك حلقه انجام مي شود.
آن چيزي كه اين برنامه را براي اساتيد جذاب مي كند، نحوه تعريف متغيرهاي آن است كه بستگي به محدوده عملياتي دارد. محدوده عملياتي شما اعداد 20 تا 40 است يعني:
بديهي است كه نوع int جوابگوي متغيرها نخواهد بود.مي توان از long و... استفاده كردكه هر كدام محدوده اي را ساپورت خواهند كرد. در برنامه زير از نوع داده اي double استفاده شده است كه تا حدود !200 را مي تواند محاسبه نمايد:کد:20!=2432902008176640000
40!=8.1591528324789773434561126959612e+47
سوالي بود در خدمتم.کد:#include <stdio.h>
#include <conio.h>
#include <math.h>
void main (void)
{int n,i;
double result;
while(1)
{/*clrscr();*/
printf("\nEnter your number:");
scanf("%d",&n);
result=1;
for(i=1;i<=n;i++)result=result*double(i);
printf("\n%d!=%2.0lf",n,result);
printf("\n\nDo you want to continue(y/n)?");
if(getch()=='y')continue;
break;
}
printf("\nGOOD LUCK!");
getch();
}
خیلی خیلی ممنون !!!!
من گفتم شاید باید با آحافظه پویا نوشت ! درست فکر می کنم یا در اشتباهم !!!
در مورد حافظه پویا می تونین راهنماییم کنید ؟
نقل قول:
نه،ربطي به حافظه پويا ندارد.حافظه پويا اختصاص بخش غيرثابت از حافظه به حجمي از داده هايي است كه اندازه نهائي آنها يا مشخص نيست و يا ثابت نمي ماند.از حافظه پويا به دو دليل استفاده مي شود.اول آنكه در مواردي تعداد نوع داده اي مشخص نيست و نمي توان طول خاصي براي آن در نظر گرفت و دوم در زماني كه تعداد نوع داده اي زياد است ولي مدت زمان استفاده آن در برنامه كم و مقطعيست وبراي آنكه حافظه بدون استفاده اشغال نماند،از تخصيص حافظه استفاده كرده و پس از اتمام آن حافظه را آزاد مي نمايند.تـابع ()malloc مـخصوص تخصيص حافظه اسـت و تابع ()free جهت آزاد سازي حافظه بكار مي رود.
پارامتر های تابع getavg درست نیستن.نقل قول:
هر پارامتر یک تایپ و یک اسم داره.اینطوری که گذاشتی پارامتر اول اصلا مفهوم نداره.میتونی struct student رو سراسر (بالای کد هات) تعریف کنی و کل اطلاعات دانشجو ها رو به صورت یه آرایه از نوعstudent بفرسی.یا اینکه نمره ها رو بریزی توی یک آرایه float و اون رو برای تابع بفرستی
با سلام ممنون که راهنمایی کردید.به این صورت نوشتمنقل قول:
کد:#include<stdio.h>
#include<conio.h>
float getavg(float* a,int size)
{
float sum=0,g;
for(int i=0;i<size;i++)
{
sum+=a[i];
}
g=sum/size;
return g;
}
//_________________________________________
struct student
{
char name[10];
int stno;
float marks[2];
}s1[2];
//__________________________________________
void main()
{
clrscr();
float avg[2];
int k=0;
for(int j=0;j<2;j++)
{
k++;
printf("student name%d:",k);
scanf("%s",s1[j].name);
printf("student number%d:",k);
scanf("%d",&s1[j].stno);
for(int i=0;i<2;i++)
{
printf("student mark%d:",k);
scanf("%f",&s1[j].marks[i]);
}
}
avg[0]=getavg(s1[0].marks,2);
avg[1]=getavg(s1[1].marks,2);
//-------------------------------------------
for(int r=0;r<2;r++)
{
printf("student name:%s\n",s1[r].name);
printf("student number:%d\n",s1[r].stno);
printf("student average:%f\n",avg[r]);
}
getch();
}