PDA

View Full Version : مشکل در نمایش آرایه ها



Mostafa_G2
جمعه 06 اسفند 1389, 17:08 عصر
سلام خدمت دوستان
من خیلی سیع کردم که این برنامه رو بنویسم ولی نشد , اگه ممکنه کمک کنید :
سوال این هست : برنامه ایی بنویسید که n عدد از کار بر بگیرد و به اندازه عدد k که خود کاربر آن را مشخص میکند در ( آریه ) اعداد را به پایین شیفت دهد به عنوان مثال :
آریه اصلی :

66807

آرایه ای که برنامه از ما می خواهد :

http://s29.aks98.com/files/82989285585202030202.jpg

الان اینجا کاربر 4 تا عدد وارد کرده که به اندازه عدد k که 2 میباشد اعداد در آرایه به سمت پایین شیفت داده مشوند , حالا کدی که من نوشتم رو شما یه نگاه بندتزید و بگید که مشگل از کجاست که برنامه هیچی چاپ نمیکنه (دستتون درد نکنه)



#include <iostream>

using namespace std;

int main()
{
int s[100];
int n, k, j, i, nNumber;

cout << "please enter n: ";
cin >> n;
nNumber = n - 1;

cout << "\nplease enter k: ";
cin >> k;

for (i = 0; i <= nNumber; i++)
{
cout << "\nPlease enter s[" << i << "]= ";
cin >> s[i];
}
cout << "\n\n";



for (i = 1; i <= k; i++)
{
nNumber = n - 1;

for (j = n; j >= 1; j--)
{
s[j] = s[nNumber];
s[nNumber] = 0;
--nNumber;
}

}

for (i = 0; i <= nNumber; i++)
{
cout << s[i] << " ";
}

cout << "\n\n" << endl;

system("PAUSE");
return 0;
}

drstrike
جمعه 06 اسفند 1389, 18:10 عصر
سلام...
اون دوتا حلقه for که واسه شیفت دادن و چاپ خروجی نوشتی پاک کن کد زیر رو جایگزین کن:


for (i = nNumber; i >= 0; s[i+k] = s[i],s[i] = 0, i--);
for (i = 0; i < n; cout << s[i] << " ",i++);

موفق باشی