PDA

View Full Version : ارور برنامه char



sa1378
دوشنبه 30 تیر 1393, 10:12 صبح
چرا این کد ارور میده؟

#include <cstdlib>
#include <iostream>

using namespace std;

int tool(char a[30])
{
int tool=0;
for(int i=0;a[i]!=0;i++)
{
tool++;
}
return tool;
}
char jam(char a[30],char b[30])
{
char c[60];
int t1=0;
t1=tool(a[30]);
for(int k=0;a[k]!=0;k++)
{
c[k]=a[k];

}
for(int i=t1,int j=0;b[j]!=0;i++,j++)
{
c[i]=b[j];

}
}

int main()
{
char a1[30],a2[30],a3[60];
cin>>a1>>a2;
a3=jam(a1[30],a2[30]);
cout<<a3<<endl;

system("PAUSE");
return EXIT_SUCCESS;
}

a.r.khoshghalb
دوشنبه 30 تیر 1393, 11:23 صبح
یک نکته اینکه وقتی آرایه ات به این صورت تعریف شده :

char a[30];


شما خونه [a[30 رو نداری و آخرین خونه [a[29 هست.
ولی چیزی که بابتش ارور میگیری اینه که وقتی ورودی تابع ات به این صورت هست:

int tool(char a[30])

باید به این صورت صدا زده بشود :

tool(a);

در حالی که شما به این صورت صدا زدی :

tool(a[30]);


مشکل دیگه این که تابع jam باید خروجی برگردونه ولی چیزی return نمی کنی.

مشکل دیگه تو خط 25 کدت:
این غلطه:
for(int i = t1, int j = 0; b[j] != 0; i++, j++)
درستش اینه:

for(int i = t1, j = 0; b[j] != 0; i++, j++)




پس اصلاحات باید در خطوط 19 و 25 و 36 و خروجی تابع jam انجام بشه.

sa1378
دوشنبه 30 تیر 1393, 13:31 عصر
واقعا ممنون
میشه کمک کنین چجوری خودم کدم رو اشکال یابی کنم؟
اون ارور هایی که پایین میده رو حداکثر تا 50% متوجه میشم

a.r.khoshghalb
دوشنبه 30 تیر 1393, 15:12 عصر
اولین کار اینه که همیشه آماده باشه کدتون! هر تابع رو که تموم می کنید یه دور کامپایل کنید که ارور های ریز و جزئی روی هم جمع نشند و تهش وقتی برنامه رو کامپایل می کنید به مشکل بخورید!
من از Visual studio استفاده می کنم و خودش ارور ها رو میگه بهتون!