سلام...خواهش میکنم زودتر کمکم کنین
تابعی میخوام که عنصر n ام را از یک آرایه حذف کنه...؟ (++C)
بازه ممنون...فقط سریعتر :11:
Printable View
سلام...خواهش میکنم زودتر کمکم کنین
تابعی میخوام که عنصر n ام را از یک آرایه حذف کنه...؟ (++C)
بازه ممنون...فقط سریعتر :11:
تا منظورتون از کمک چی باشه .
درخواست پروژه دانشجویی == خلاف قوانین
باید مقادیر آرایه رو از اخر تا محل عنصر n ام شیفت بده.یعنی n+1 رو بریزه تو n و n+2 رو بریزه تو n+1 و همینطور الی آخر.خیلی راحته.نقل قول:
تويه c از تابع strcpy استفاده كنيد.
يا
شما ميخوايد n نومين خونه رو حذف كنيد پس n+1 رو جاي n بريزيد و n+2 رو جاي n+1;
البته تابع بالا نيازي به اين كارا نداره.
اگر كتاب قومي رو داري صفحه 136 رو مطالعه كن.
البته درصورتی که بخواد از رشته استفاده کنه.نقل قول:
البته با strcpy هم باید باز هم یه خونه مشخص رو در یه خونه مشخص دیگه کپی کنه,iکه میشه همون روش بالا.
مشكل كجاست؟ رشته كه فقط شامل a,b و ... نيست. (حتي اعداد هم وقتي وارد رشته ميشوند به طور كاراكتري ذخيره ميشوند.)نقل قول:
خب اصولا بايد همون كار رو بكنه , وگرنه مطرح نميكردم!نقل قول:
چون شما گفته بودید strcpy نیاز به موارد بالا نداره.نقل قول:
در کل اگه قراره از رشته استفاده نشه یه کار اضافی است که از strcpy استفاده کنیم وقتی خیلی راحت میتونیم:
array[i]=array[i+1]
الان هم ميگم !:31:نقل قول:
كدوم ساده تره ؟؟؟کد:gets(m);
scanf("%d",&x);
strcpy(&m[x],&m[x+1]);
puts(m);
جدا از اینکه من نمیدونم شما چطور میخواهید واسه آرایه ای که int تعریف شده ,تابع strcpy رو بکار ببرید; برای شیفت کردن خانه های آرایه باید از حلقه استفاده بشه.دستوری که شما نوشتید برای رشته است و فقط یه خونه رو جا به جا میکنه و نمیتونه کل خونه های آرایه رو شیفت بده.نقل قول:
منظورتون عبارت مقابله :نقل قول:
اين كه انديس خونه اي كه قراره حذف بشه رو مشخص ميكنه !!!کد:scanf("%d",&x);
من نمي خواستم كد رو بزارم ولي ...
کد:#include<stdio.h>
#include<string.h>
#include<conio.h>
main()
{
int x;
char m[20];
gets(m);
scanf("%d",&x);
strcpy(&m[x],&m[x+1]);
puts(m);
getch();
}
اين رو امتحان كنيد و ببينيد جواب ميده يا نه ؟:46: