ايران ويج

نسخه‌ی کامل: به دادم برسيد !!!
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
من تازه c++ را شروع كردم. ولي يك اشكال پيدا كردم پ هر كاري ميكنم درست نميشه.لطفا كمكم كنيد.
اينم كدها :
#include <iostream>
#include <conio>
#include <iomanip>
float salary (float *);

main()
{
float p ,sale;

cout << "enter the sales in dollar :" ;
cin >> p;
salary (&p);
cout << "salary is :" << setiosflags (ios::fixed | ios::showpoint)<<
setprecision(2) << sale << endl;
getch();
}
//***********************
float salary (float *h)
{
float ctr = 200.00 , sale ;
sale = ctr + (*h * 9.00 /100.00) ;
return (sale) ;
}

راستي اگر كد ها نا مشخص هستن كپي كنيد و جاي دگه پيست كنيد.
دوست من سلام

كد شما بصورت زير تصحيح شد :

کد:
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;

float salary(float*);

void main()
{
float p ,sale;

cout << "enter the sales in dollar :" ;
cin >> p;
sale=salary (&p);
cout << "salary is :" << setiosflags (ios::fixed | ios::showpoint)<<
setprecision(2) << sale << endl;
getch();
}
//***********************
float salary (float *h)
{
float ctr = 200.00 , sale ;
sale = ctr + (*h * 9.00 /100.00) ;
return (sale) ;
}


اشكالات شما :

1-conio.h جز هدر هاي سي هست و توي STL نيست پس شما بايد پسوند h. رو ذكر كنيد !
2- استفاده نكردن از using namespace std . زمانيكه شما پسوندهاي h. رو براي هدرهاي استاندارد مثل iostream ذكر نكردين بايد مشخص كنيد كه از كدوم namespace براي توابع استاندارد توي برنامه خودتون ميخواييد استفاده كنيد و همين طور كه ميدونيد namespace توابع استاندارد std هست !
3-در كدي كه شما نوشته بوديد تابع salary كه داراي مقدار بازگشتي هست بدون توجه به مقدار بازگشتي فراخوني شده بود يعني شما فقط تابع salary رو توي main صدا زده بوديد اگر چه مقدار بازگشتي اون مهم هست !! در انتها شما متغير slae رو به خروجي مي فرستايد كه در اين صورت يك مقدار مخدوش يا همون Garbage value رو به شما بر مي گردوند . من اون خط رو به شكل زير تغيير دادم تا متغير slae شما معنا دار بشه !

کد:
sale=salary (&p);
سلام
لطفا در نوشتن این برنامه کمکم کنید:
عدد n را گرفته و ماتریسی به این صورت چاپ کند:
مثلا اگر n=3 باشد ماتریس به این صورت است
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1

یا اگر n=4 باشد
1 1 1 1 1 1 1
1 2 2 2 2 2 1
1 2 3 3 3 2 1
1 2 3 4 3 2 1
1 2 3 3 3 2 1
1 2 2 2 2 2 1
1 1 1 1 1 1 1

و الی آخر. راستی اگر با C باشه خیلی بهتره.
با تشکر فراوان

ممد جان لذت می برم که انقدر کامل توضیح می دی !
من هم VC++ رو تازگی شروع کردم و حتما برای سوالاتم مزاحمت می شم ! [تصویر:  biggrin.gif]
نقل قول: سلام
لطفا در نوشتن این برنامه کمکم کنید:
عدد n را گرفته و ماتریسی به این صورت چاپ کند:
مثلا اگر n=3 باشد ماتریس به این صورت است..........

اینهم کدی که برای شما ارسال کردم . اینجا هم زدم شاید بعضی از دوستان بخوان استفاده کنند :

کد:
#include <stdio.h>
#include <conio.h>

void main()
{
    
    int a[10][10],g,p,t=0,i,j,tmp;
    printf("Please enter your number :");
    scanf("%d",&p);
    tmp=p;
    g=p--;

    while(g>=1)
    {
        for(i=p-t;i<=p+t;i++)
        {
            a[p-t][i]=g;
            a[p+t][i]=g;
            a[i][p-t]=g;
            a[i][p+t]=g;
        }

        g--;
        t++;
    }


    printf("Your matrix is :\n");
    for(i=0;i<2*tmp-1;i++)
    {
        for(j=0;j<2*tmp-1;j++)
            printf("%d ",a[i][j]);

        printf("\n");
    }

getch();

}

برای اینکه این برنامه با اعداد بزرگتر هم کار کنه ابعاد آرایه رو زیادتر کنید . در واقع طبق الگوریتم موجود اگر عدد شما n باشه اونوقت بعد آرایه شما باید 2n-1 باشه تا برنامه صحیح کار کنه !
امیدوارم مفید باشه !