دریافت ماتریس با طول نامشخص - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

وبـــلاگ هــفت خــط کــد


آموزش های برنامه نویسی
۲۲۳ نفر آنلاین
۶۳ عضو و ۱۶۰ مهمان در سایت حاضرند

دریافت ماتریس با طول نامشخص

0 امتیاز
 با سلام.من می خواستم شروع به نوشتن یه برنامه بکنم که کاربر تا کلمه ی  end وارد نکرده بتونه سطر و ستون ماتریس (آرایه 2 بعدی)وارد کنه؟؟اگه می شه راهنمایی کنین. [U]کدش  نمی خوام ایده رو می خوام[/U]   
با تشکر
سوال شده دی 1, 1392  بوسیله ی Sher228 (امتیاز 167)   18 33 44
دوباره تگ گذاری شد بهمن 22, 1392 بوسیله ی BlueBlade
سلام.میتونین یک ارایه دوبعدی با حداکثر مقدار بنویسین بعد با استفاده از یک if از for برای گرفتن المان های ماتریس خارج بشید ..
شرط های   if  , for  یاید چی باشه؟؟؟؟؟
ببینید برای گرفتن المان ها ی یک ماتریس n*n به دو تا for نیاز دارید ..
و برای شرطی که گذاشتین به یک if ..
اگر بازم توضیح میخواید بگین تا براتون بگم
موفق باشید
اگه بتونید دستور if خیلی خوب میشه؟؟برای for هم باید دو حلقه تو در تو باشه؟؟
if(a[i][j] == (int)end)
این برای شرط
بله دوتا حلقه تو در تو میشه ..
میشه for ها هم بنویسین آخه شرط پایان و نمی دونم در مورد قسمت دوم if که نوشتین int end هم توضیح بدین ممنون می شم...؟؟
int tmp = 0;
for (int i = 0; i <100 ; i++ )
    {
        for (int j = 0 ; j<100 ; j++ )
        {
            cout<<"ENTER ELEMAN : ";
            cin >> a[i][j] ;
            if(a[i][j] == (int)end )
            {
            tmp = 1;
            break;
            }
        }
        if(tmp == 1)
        break;
    }

سلام.(int)end داره کاراکتر end  را به int کست میکنه ..

2 پاسخ

+1 امتیاز
 
بهترین پاسخ
سلام.

به نظرم کاربر رو محدود کنید در جهتی که خودتون میخاید! یعنی اول مجبور کنید که تعداد سطرها و ستون هاشو تعیین کنه بعد حافظه اختصاص بدید بعد به ترتیب عناصر رو وارد کنه تا تعداد عناصر برسه به ضرب تعداد ستون در تعداد سطر.
پاسخ داده شده دی 2, 1392 بوسیله ی محمد قدیانی (امتیاز 317)   1 9
انتخاب شد بهمن 16, 1392 بوسیله ی BlueBlade
+1 امتیاز

سلام از این کد استفاده کن  ( با endrow میره سطر بعد  با end کلا دریافت ماتریس تموم میشه )

#include <iostream>
#include <vector>
#include <string>
#include <stdlib.h>

using namespace std;

int main()
{
    vector <vector <int> > matris;
    matris.push_back(vector<int>());

    string text;
    int currentRow=0;
    int currentCol=0;
    //get matris
    while(1)
    {
        cout<<"Row "<<currentRow<<" , Col "<<currentCol<<"  : ";
        cin>>text;
        if(text == "endrow")
        {
            currentRow ++;
            currentCol=0;
            matris.push_back(vector<int>());
            continue;
        }
        else if(text=="end")
        {
            break;
        }
        matris[currentRow].push_back(atoi(text.c_str()));
        currentCol++;
    }
    //show matris
    for(int i=0;i<matris.size();i++)
    {
        for(int j=0;j<matris[i].size();j++)
        {
            cout<<matris[i][j]<<"  ";
        }
        cout<<"\n";
    }
}

 

پاسخ داده شده دی 2, 1392 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
اقا ممنون ولی این قضیه ی vector  چیه؟؟بدون این نمی شه نوشت؟؟
میشه ولی ساده ترین راهش همینه
...