نمایش نتایج 1 تا 14 از 14

نام تاپیک: اشكال در مورد مقلوب یک رشته و اشاره گر ها

  1. #1
    کاربر دائمی آواتار karim orooji
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد (پایتخته معنوی ایران)
    پست
    1,376

    اشكال در مورد مقلوب یک رشته و اشاره گر ها

    سلام دوستان
    دو تا سوال داشتم :
    1. من ميخوام يه رشته رو معكوس چاپ كنم اما در تابع مشكل ميده
    اينم كد برنامه
    #include <iostream.h>
    void maks(char []);
    void main()
    {
    char s1[11];
    cout<<"s1 : ";
    cin>>s1[10];
    maks(m);
    //*********maks************
    void(char m[])
    {
    int i;
    char m[10];
    for(i=0;i<m[i];i++)
    {
    cout<<m[i];
    }

    }


    2. تابعي بنويسيد كه يك اشاره گر از نوع صحيح و عدد صحيح n را به عنوان پارامتر پديرفته حافظه اي براي n عدد صحيح تخصيص بده و ادرسشو به برنام برگردونه اما كد جواب نميده
    ممنون ميشم كمكم كنيد
    اينم كدش
    #include <iostream.h>
    #include <stdlib.h>
    long memory();
    int main()
    {
    long n;
    cin>>n;
    memory(a);
    return 0;
    }
    //********memory*************
    long memory(long a)
    {
    int *fp;
    fp=new int;
    if(!fp)
    {
    cout<<"allocation failure"
    exit(1);
    }
    fp=&a
    retrun fp;
    }
    آخرین ویرایش به وسیله karim orooji : چهارشنبه 11 آذر 1388 در 19:06 عصر دلیل: اضافه نشدن تاپيك جديد

  2. #2

    نقل قول: اشكال در برنامه

    دوست عزیز شما میخوای یک رشته بخونی ولی این دستور یک کارکتر میخونه
    cin>>s1[10];
    و این داخل این تابعی که نوشتی دوباره رشته تعریف کردی در واقع آرگومانی به تابع رد نمیشه که بخواد روش کار کنه و برعکسش کنه

  3. #3
    کاربر دائمی آواتار karim orooji
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد (پایتخته معنوی ایران)
    پست
    1,376

    نقل قول: اشكال در برنامه

    دوست عزيز
    به اين صورت تغييرش دادم بازم درست نشد
    #include <iostream.h>
    void maks(char []);
    void main()
    {
    int const n=10;
    char s1[n];
    cout<<"s1 : ";
    cin.get(s1,n);
    maks(m);
    //*********maks************
    void maks(char m[])
    {
    int i;
    char m[10];
    for(i=0;i<m[i];i--)
    {
    cout<<m[i];
    }

    }

  4. #4

    نقل قول: اشكال در برنامه

    for(i=0;i<11;i++)
    cin>>s1[i];
    for(i=10;i>=0;i--)
    cout<<s1[i]<<endl;


    دوستان ببینید این جواب من واسه سوال اولی ( معکوس کردن) درسته ؟

  5. #5
    کاربر دائمی آواتار karim orooji
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد (پایتخته معنوی ایران)
    پست
    1,376

    نقل قول: اشكال در برنامه

    دوست عزيز دقيق جواب نميده
    ميشه خودتونم تو كدي كه گذاشتم تست كنيد

  6. #6

    نقل قول: اشكال در برنامه

    for(i=0;i<11;i++)
    cin>>s1[i];
    for(i=10;i>=0;i--)
    cout<<s1[i]<<endl;
    خواندن رشته اونم حرف به حرف کار اشنباهی است
    =======================================
    cin>>s;
    for(i=n;i<0;i--)
    cout<<s[i];
    فقط برای بدست آوردن طول رشته از دستور
    strlen
    میتونید استفاده کنید

  7. #7

    نقل قول: اشكال در برنامه

    برای اولی این جواب میده :

    #include <iostream.h>

    void maks(char []);
    void main()
    {
    char s1[11];
    cout<<"s1 : ";
    cin.getline( s1, 11 );
    maks(s1);
    }
    void maks (char m[])
    {
    int i;
    for(i=9;i>=0;i--)
    {
    cout<<m[i];
    }

    }
    برای دومی هم این :

    #include <iostream.h>
    #include <stdlib.h>
    int* memory(int);
    int main()
    {
    int n;
    cin>>n;
    memory(n);
    return 0;
    }
    //********memory*************
    int* memory(int a)
    {
    int *fp;
    fp=new int[a];
    if(!fp)
    {
    cout<<"allocation failure";
    exit(1);
    }
    return fp;
    }

  8. #8

    نقل قول: اشكال در برنامه

    برای معکوس رشته با هر طولی :


    #include <iostream>
    #include <conio>
    #include <string>
    void swap(char &a,char &b){
    char temp = a;
    a = b;
    b = temp;}
    //==========================
    void Reverse(char a[]){
    int len = strlen(a);
    for(int i=0;i<len/2;i++){
    swap(a[i],a[len-1-i]);}
    }
    //==========================
    int main(){
    char a[20];
    cin.getline(a,20);
    Reverse(a);
    cout<<a<<endl;
    getch();
    }






  9. #9

    نقل قول: اشكال در مورد مقلوب یک رشته و اشاره گر ها

    این هم میشه . برای هر طولی . یه کم راحت تر :

    #include <string>
    #include <iostream>
    using namespace std;

    string reverse( string a )
    {
    string temp;
    temp.resize( a.length() );
    for( size_t i = 0; i < a.length(); i++ )
    temp[ a.length() - 1 - i ] = a[ i ];
    return temp;
    }

    int main()
    {
    string a;
    getline( cin, a );
    cout << reverse( a );

    return 0;
    }

  10. #10
    کاربر دائمی آواتار karim orooji
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد (پایتخته معنوی ایران)
    پست
    1,376

    نقل قول: اشكال در مورد مقلوب یک رشته و اشاره گر ها

    سلام دوستان
    مربوط به سوال دوم
    من اين كد رو به اين صورت تغيير دادم اما در exit اين error رو ميده
    statement missing in function memory(long)

    #include <iostream.h>
    #include <stdlib.h>
    long* memory(long);
    long main()
    {
    long n;
    cin>>n;
    memory(n);
    return 0;
    }
    //********memory*************
    long* memory(long a)
    {
    long *fp;
    fp=new long(a);
    if(!fp)
    {
    cout<<"allocation failure"
    exit(1);
    }
    return fp;
    }


    و چرا * در جلوي long گذاشتين
    long* memory(long);
    آخرین ویرایش به وسیله karim orooji : جمعه 13 آذر 1388 در 11:00 صبح

  11. #11

    نقل قول: اشكال در مورد مقلوب یک رشته و اشاره گر ها

    نقل قول نوشته شده توسط karim orooji مشاهده تاپیک
    سلام دوستان
    مربوط به سوال دوم
    من اين كد رو به اين صورت تغيير دادم اما در exit اين error رو ميده
    statement missing in function memory(long)
    برای اینکه بعد از گیومه بسته دستور cout علامت ; رو نداشتین .

    و چرا * در جلوي long گذاشتين
    long* memory(long);
    اگه یه تابع قراره یه آدرس برگردونه باید * هم گذاشته بشه . چون یه متغیر معمولی نمی تونه آدرس نگه داره . اشاره گر می تونه این کارو بکنه . برای همین گفتیم که این تابع یه اشاره گر به long برگردونه

  12. #12
    کاربر دائمی آواتار karim orooji
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد (پایتخته معنوی ایران)
    پست
    1,376

    نقل قول: اشكال در مورد مقلوب یک رشته و اشاره گر ها

    دوست عزيز
    بهتر نيست به اين صورت بنويسيم
    long memory (*long)

    ممنون از راهنمايي اما چرا برنامه خروجي نداره
    ميخوام با وارد كردن يك عدد ادرس اون خونه رو نمايش يده

  13. #13

    نقل قول: اشكال در مورد مقلوب یک رشته و اشاره گر ها

    نقل قول نوشته شده توسط karim orooji مشاهده تاپیک
    دوست عزيز
    بهتر نيست به اين صورت بنويسيم
    long memory (*long)
    ممنون از راهنمايي اما چرا برنامه خروجي نداره
    ميخوام با وارد كردن يك عدد ادرس اون خونه رو نمايش يده
    نه این برنامه همین کارو براتون می کنه .


    #include <iostream.h>
    #include <stdlib.h>
    long* memory(long);
    long main()
    {
    long n;
    cin>>n;
    cout << memory(n);
    return 0;
    }
    //********memory*************
    long* memory(long a)
    {
    long *fp;
    fp=new long(a);
    if(!fp)
    {
    cout<<"allocation failure";
    exit(1);
    }
    return fp;
    }

  14. #14
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    بهمن 1386
    پست
    21

    نقل قول: اشكال در مورد مقلوب یک رشته و اشاره گر ها

    اینم یه جواب کوتاه واسه سوال اولتون که از تابع reverse خود STL استفاده می کنه
    #include<cstdio>
    #include<algorithm>
    char c[100];
    int main()
    {
    scanf("%s", c);
    std::reverse(c, c+strlen(c));
    printf("%s\n", c);
    return 0;
    }

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •