PDA

View Full Version : من تازه کارهستم لطفا به من در حل برنامه زیر کمک کنید



saharomid
یک شنبه 28 آبان 1385, 18:27 عصر
من می خاهم برنا مه ای بنویسم که رشته ای را کاراکتر به کاراکتر خوانده و تا زمانی که به نقطه نرسیده به این عمل ادامه دهد و بعد هر کا راکتر را در آرایه قرار دهد و سپس به فرض عنصر شماره 1 آرایه را در خروجی چاپ کند اما این عمل را اشتباه انجام می دهد مشکل کجاست؟

#include <conio.h>
#include <stdio.h>
int main(){
clrscr();
int i;
char arr1[1000];
int h=0;
char ch;
printf("Enter string<<<:");
while((ch=getche())!='.'){
h++;
}
for(i=0;i<=h;i++)
arr1[i]=ch;
printf("%c",arr1[1]);
getch();
return 0;
}

mzjahromi
یک شنبه 28 آبان 1385, 18:33 عصر
این چی هست؟
چیکار میخوای بکنی؟
مشکلش کجاست؟

powerboy2988
یک شنبه 28 آبان 1385, 18:53 عصر
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
int i;
char arr1[1000];
int h=0;
char ch[1000];

main()
{
clrscr();
printf("Enter string<<<:");
while((ch[h]=getche())!='.')
{
h++;
}
for(i=0;i<=h;i++)
arr1[i]=ch[i];
cout<<endl;
printf("%c",arr1[0]);
getch();
return 0;
}

powerboy2988
یک شنبه 28 آبان 1385, 21:09 عصر
مشکلشو فهمیدین از کجا بود؟



از این خط بود


char ch[1000];

راستی یک نگاه به سورس من و خودتون بکنید!!!!
اگه سعی کنید مثل من(منظور از من ، خود من نیست) بنویسید برنامه شما خوانا تر خواهد شد و یه دیده بهتری پیدا می کنید

powerboy2988
یک شنبه 28 آبان 1385, 23:27 عصر
همین الان تست کردم درست بود
خطا می ده؟

peyman1987
یک شنبه 28 آبان 1385, 23:39 عصر
برنامه powerboy درست کار میکنه و خطایی نداره ولی من نفهمیدم از آرایه ch برای چی استفاده شده خوب از همون arr1 برای دریافت اطلاعات استفاده میکردین.

saharomid
دوشنبه 29 آبان 1385, 16:37 عصر
راست میگین اشتباه از من بود من نقطه را نگذاشته بودم در خروجی
--------------------
اگر لطف کنید و همین طور به سوال های من جواب بدید واقعا خوشحال میشم چون وقتی مشکلی در برنامه پیش می یاد و نمیتونم حلش کنم واقعا کلافه میشم

saharomid
دوشنبه 29 آبان 1385, 16:44 عصر
ولی دستور
cout<<endlبرایم نا آشناست.

sarvestan
دوشنبه 29 آبان 1385, 16:49 عصر
cout تابع خروج متن در خروجی است و در هدر فایل IOSTREAM وجود دارد!

Sepidar
دوشنبه 29 آبان 1385, 19:10 عصر
لطفا عنوان تاپیک را اصلاح کنید

powerboy2988
دوشنبه 29 آبان 1385, 19:43 عصر
ولی دستور نقل قول:
cout<<endl
برایم نا آشناست.
این دستور (endl) باعث می شه به سر سطر بعدی برود البته دستور cout معادل دستور printf هستش ولی این دستور در ++c اجرا می شه نه در c
اگه هم مشکلی داشتی به EMail من بفرست
خوش باشی

saharomid
دوشنبه 29 آبان 1385, 22:19 عصر
حالا اگر بخواهیم در بر نامه ای که کدش را برایتان گفتم برنامه رشته ای را بگیرد و در رشته چندین فاصله داشته باشیم و بخواهیم برنامه در خروجی از اول رشته تا فاصله اول/ بعد از اول رشته تا فاصله دوم بعد از اول رشته تا فاصله سوم و... را چاپ کند چه کار باید بکنیم.

powerboy2988
دوشنبه 29 آبان 1385, 22:42 عصر
اگه بخواین رشته با ورودی فاصله بگیرین باید از دستور ()getc استفاده کنید
بعد از اینکه گرفتید اونو تو یه متغیر میریزد که از نوع رشته باشه بعد دونه دونه شروع می کنید به چاپ کردن تا جایی که به فاصله برسید
از این مرحله به بعد 2 تا کار می تونید انجام بدین که در حالت اول تو حلقه for میزاری با یه دستور if چک می کنی که هر وقت به فاصله رسیدی آرایه یه خونه به جلو بره و ادامه چاپ رو انجام بدی یا تو حالت دوم تو یه حلقه while چک میکنی تا وقتی که به فاصله نرسیدی عمل چاپ رو انجام بده و هم زمان خونه آرایه رو یه شیفت به چپ بکنی
به نظر من حالت اول برات راحت تره

saharomid
دوشنبه 29 آبان 1385, 23:32 عصر
اگه امکان داشته باشه کدش رو بنویسید.

saharomid
چهارشنبه 01 آذر 1385, 00:18 صبح
یک برنامه ای نوشتم(برنامه ای که گفته بودم) لطف کنید و ایرادهایش را بگویید .البته زیاد درست نیست

#include <conio.h>
#include <stdio.h>
#include <string.h>
int i;
char arr1[1000];
char ch[1000];
int h=0;
int s=0;
char s1;
char s2;
main()
{
clrscr();
printf("Enter string<<<:");
while((ch[h]=getche())!='.')
{
h++;
while((ch[h]=getche())!=' ')
{
s++;
}
}
for(i=0;i<=h;i++)
arr1[i]=ch[i];
s1=arr1[i];
s2=' ';
strcmp(s1,s2) //agar be tohi resid tamame anasore mojod dar bh ra dar arr1 beriz
if (s1==s2)
{
for (i=0;i<=s;i++)
{
arr1[i]=bh[s];
printf("\n%s",arr1); //ta residan be tohi tamame anasor ra dar khoriji chap kon
s++; //agar be tohi residi be akharin megdar s ezafe kon
}
}

powerboy2988
چهارشنبه 01 آذر 1385, 00:30 صبح
اگه مشکلی نیست تا فردا شب جوابشو بدم؟

saharomid
چهارشنبه 01 آذر 1385, 11:28 صبح
ممنون میشوم.
راستی چرا کدها درست ذخیره نمیشوند؟

powerboy2988
چهارشنبه 01 آذر 1385, 22:10 عصر
یعنی چی درست ذخیره نمی شوند؟

powerboy2988
چهارشنبه 01 آذر 1385, 22:31 عصر
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int l,m,i;
char r[200],d;
main()
{
clrscr();
d=' ';
cout<<"enter your string:";
gets(r);
l=strlen(r);
for(i=0;i<=l;i++)
{
if (r[i]==d)
{
cout<<endl;
}
else
{
cout<<r[i];
}
}
getch();
return 0;
}

saharomid
چهارشنبه 01 آذر 1385, 23:27 عصر
یعنی چی درست ذخیره نمی شوند؟
یعنی من کدها رو داخل کد شکن میذاشتم ولی کدها رو چپکی نشون میداد.

kaiscrin
شنبه 04 آذر 1385, 14:46 عصر
اعلان متغیر قبل از clrscr و نه قبل از main چون بهتره متغیر global نباشد .
و برای چاپ رشته آحر از این فرمت استفاده کنید که از for استفاده نکند
;(printf("%s",arr