PDA

View Full Version : تصحيح كد،خواهش ميكنم



roshanaii
یک شنبه 05 دی 1389, 23:31 عصر
سلام به برنامه نويسان محترم
ازتون خواهش ميكنم التماستون ميكنم يه نفر اين كد رو ببينه ايراداشو بهم بگه مخم تركيد كمكم كنين همبن الان لازمش دارم خواهش ميكنم.... سوالشو تو همين بخش با عنوان " استفاده از توابع" مطرح كردم


#include<iostream.h>

#include<conio.h>

#include<stdio.h>

void harf(char a[100],int i,int j)

{



cout<<"enter you string:";

gets(a);

cout<<"\n-----------------\n";

for(i=0;a[i]!='\0';i++)

{

if(a[i]!=' ')

cout<<a[i];

}

for(i=0;a[i]!='\0';i++)

{

}

i--;

for(j=i;j>=0;j--)

cout<<a[j];

}

main(){

char a[100];

int i,j;

cout<<harf(a[100]);

getch();

}

shask00l
دوشنبه 06 دی 1389, 00:05 صبح
ساده ترین ایرادی که بدون بررسی کد میشه به برنامتون گرفت اینه که نوع بازگشتی تابع harf تهی است . ولی توی بدنه اصلی خروجی این تابع به cout پاس داده شده . به نظر شما cout باید چه چیزی نمایش بده ؟
تابع harf باید سه پارامتر ورودی بگیره . رشته A و i و j . اما توی بدنه اصلی برنامه تنها با یک پارامتر صدا زده شده .
ضمنا اگر harf قراره یه مقدار برگردونه این مقدار باید return بشه .

کد رو بررسی میکنم و اگر نکته ای بود جواب کاملتری میدم . ضمنا اگر سوالتون به پست دیگه ای ارتباط داره یا موردی رو جایی مطرح کردید . یا لینک بدید یا توی تاپیک توضیح بدید . من اون تاپیک " استفاده از توابع" رو پیدا نکردم .

پ.ن :

توی این برنامه ظاهرا شما تصمیم دارید ابتدا رشته ورودی رو بدون فاصله نمایش بدید . بعد طولش رو پیدا کنید و بعد کل رشته رو نمایش بدید .
تنها نکته ای که میتونم به نکات بالا اضافه کنم اینه که برای حلقه های تکرار داخل تابع بهتره متغییر های i و j بصورت محلی تعریف بشن . یعنی بجای نوشتن تعریفشون توی main توی همون harf تعریفشون کنید .

راستی یادم رفت بگم .. عنوان تاپیک رو خیلی بد انتخاب کردی . کاملا خلاف قوانینه . :چشمک:

ali najafi
دوشنبه 06 دی 1389, 07:35 صبح
من هم با قضیه ی عنوان موافقم!
لینک توایع (http://barnamenevis.org/showthread.php?266792-توابع-c)