View Full Version : یه سوال از کسایی که c بلدن (رفع اشکال برنامه)
tapesh1368
یک شنبه 28 تیر 1388, 12:30 عصر
برنامه ای هست که من درش مشکل دارم.ترو خدا اگر بلدین بهم کمک کنید چون خیلی مهمه.برنامه به این صورت هستش که رقابتی بین سگ ها و گربه هاست.در هر قسمت این برنامه سگ ها و گربه ها خودشون رو نشون می دن و بیننده ها باید رای بدن که کدوم حیون باید در مسابقه بمونه و کدوم باید از مسابقه بره و رای ها به این صورت باید باشه که هر رای باید شامل یک گربه و یک سگ باشه.یعنی این که اگر انتخاب یک نفر به این صورت بود که یک گربه بمونه باید انتخابش به حیوونی که باید از مسابقه بره یک سگ باشه .
خروجی و ورودی برنامه باید مانند زیر باشه
ورودی:1)اولین خط باید یه عدد مثبت باشه که که تعداد انجام مسابقه را مشخص می کند.
2)خط بعد 3 عدد صحیح :(c,d,v(1 ≤ c, d ≤ 100 and 0 ≤ v ≤ 500 که تعداد گربه ها و سگ ها و رای دهنده ها را مشخص می کند
3)به تعداد v خط 2 سگ و گربه را مشخص می کنیم (رای ها)به طوری که اولین حیوون اونی هست که باید در مسابقه بموونه و دومی باید از مسابقه بره و هر سگ و گربه به این صورت مشخص می شود مثلا c2 این بدان معنی است که انتخاب ما دومین گربه می باشد
خروجی:
بیشترین تعداد حیوونی است که برای موندن رای اورده است
مثال عددی:
Sample Input
2
1 1 2
C1 D1
D1 C1
1 2 4
C1 D1
C1 D1
C1 D2
D2 C1
Sample Output
1
3
این کد منه اما نمیدونم چرا اجرا نمی شه . اگه اشکالش رو بهم بگین خیلی ممنون می شم
[ltr]#include <stdio.h>
#include <string.h>
main()
{
int i,j,h,o,u,l,x;
int max=0;
char kj[500][2];
char hj[500][2];
int c[100];
int p[100];
int v[100];
int g[500];
scanf("%d",&i);
for(j=0;j<i;j++){
scanf("%d %d %d",c,p,v);for(h=0;h<v[j];h++)
scanf("%s %s",kj[h],hj[h]);}
for(x=0;x<i;x++){
for(o=0;o<h;o++)
{
for(u=0;u<h;h++){if (strcmp(kj[o],kj[u])==0)
g[o]+=1;
}}
for(l=0;l<o;o++){if(g[l]>max)
max=g[l];}printf("%d",max);
}
}
panahifar
یک شنبه 28 تیر 1388, 12:43 عصر
سلام اگه میشه خوب توضیح بده .
کجا مشکل داری اجرا نمیشه یا جواب درست نمیده ؟
tdkhakpur
یک شنبه 28 تیر 1388, 13:15 عصر
سلام
کد زیر را اصلاح کنید.(به الگوریتم برنامه شما کاری ندارم.)
scanf("%d %d %d",c,p,v);
تغییر به
scanf("%d %d %d",&c[i],&p[i],&v[i]);
tapesh1368
یک شنبه 28 تیر 1388, 13:16 عصر
سلام
ببینین من اولین عددی که وارد میکنم i هستش که این عدد مشخص می کنه که مسابقه چند بار باید انجام بشه.من وقتی مثلا i رو عدد 2 وارد می کنم دور اول مسابقم رو می توونم عددش رو وارد کنم یعنی توو دور اول ورودیم مشکل نداره اما واسه مسابقه بعد من وقتی c,d,v رو وارد می کنم برنامه صفر چاپ می کنه و من دیگه نمی توونم رای ها رو که به اندازه ی v هست وارد کنم .من خودم فکر می کنم اشکالم توو حلقه های for باشه اما نمی دونم کجاشه اگه بتوونین کمک کنین ممنون می شم
tapesh1368
یک شنبه 28 تیر 1388, 13:25 عصر
سلام
کد زیر را اصلاح کنید.(به الگوریتم برنامه شما کاری ندارم.)
scanf("%d %d %d",c,p,v);
تغییر به
scanf("%d %d %d",&c[i],&p[i],&v[i]);
دستتون درد نکنه .این مشکلم حل شد.اما یه مشکل دیگه دارم و اوون اینه که خروجیمو چاب نمیکنه.شما نمیدونین چرا؟
با تشکر
tdkhakpur
یک شنبه 28 تیر 1388, 13:42 عصر
سلام
اگر منظورتان چاپ max هست آخر برنامه کد زیر را اصلاح کنید.
for(l=0;l<o;o++){
if(g[l]>max)
max=g[l];
}
printf("%d",max);
اصلاح به
max=g[0];
for(l=1;l<o;o++){
if(g[l]>max)
max=g[l];
}
printf("%d",max);
tapesh1368
یک شنبه 28 تیر 1388, 13:49 عصر
سلام
اگر منظورتان چاپ max هست آخر برنامه کد زیر را اصلاح کنید.
for(l=0;l<o;o++){
if(g[l]>max)
max=g[l];
}
printf("%d",max);
اصلاح به
max=g[0];
for(l=1;l<o;o++){
if(g[l]>max)
max=g[l];
}
printf("%d",max);
بازم خروجی چاب نشد اما به هرحال از کمکتوون خیلی خیلی ممنونم
MOHSEN8000
یک شنبه 28 تیر 1388, 14:33 عصر
با سلام
امیدوارم مشکلتون هر چه زودتر حل بشه اما دوست عزیز به نظر من : 1. در مورد برنامه ای که می نویسی اگه خواستی سوال کنی ، اگه خودتون اول مشکل برنامه رو بفهمید و بعد سوال بپرسید احتمال این که از بچه ها جواب درست بگیرید خیلی بیشتره تا این که سوال رو بنویسید. چون معمولا کسی سوال رو متوجه نمی شه یا حتی نمی خونه اونو. خود من یه بار سوالتون رو خوندم واقعا متوجه نشدم. شما سوالتون رو به صورت مشکل کد نویسی بپرسید نه مشکل برنامه خودتون. چون اینجوری بچه ها باید اول سوال و برنامه شما رو بخونن و بعد جواب به شما بدن که معمولا افراد کمی این کار رو میکنن. در ضمن برای نوشتن برنامه از تورفتگی هایی برای حلقه ها و شرط هاتون استفاده کنید تا برنامه تون خوانا تر باشه. برای فهمیدن مشکل برنامه هم به نظر من شما قسمت های مختلف برنامه رو عبارت
printf("test1");
رو قرار بدید و شماره test رو ببرید بالا تا بفهمید که اشکال برنامه از کجاست. بعد سوال بپرسید بهتر جواب می گیرید.
امیدوارم از حرف هام ناراحت نشده باشید.
موفق باشید
tapesh1368
یک شنبه 28 تیر 1388, 20:59 عصر
با سلام
امیدوارم مشکلتون هر چه زودتر حل بشه اما دوست عزیز به نظر من : 1. در مورد برنامه ای که می نویسی اگه خواستی سوال کنی ، اگه خودتون اول مشکل برنامه رو بفهمید و بعد سوال بپرسید احتمال این که از بچه ها جواب درست بگیرید خیلی بیشتره تا این که سوال رو بنویسید. چون معمولا کسی سوال رو متوجه نمی شه یا حتی نمی خونه اونو. خود من یه بار سوالتون رو خوندم واقعا متوجه نشدم. شما سوالتون رو به صورت مشکل کد نویسی بپرسید نه مشکل برنامه خودتون. چون اینجوری بچه ها باید اول سوال و برنامه شما رو بخونن و بعد جواب به شما بدن که معمولا افراد کمی این کار رو میکنن. در ضمن برای نوشتن برنامه از تورفتگی هایی برای حلقه ها و شرط هاتون استفاده کنید تا برنامه تون خوانا تر باشه. برای فهمیدن مشکل برنامه هم به نظر من شما قسمت های مختلف برنامه رو عبارت
printf("test1");
رو قرار بدید و شماره test رو ببرید بالا تا بفهمید که اشکال برنامه از کجاست. بعد سوال بپرسید بهتر جواب می گیرید.
امیدوارم از حرف هام ناراحت نشده باشید.
موفق باشید
مرسی دوست عزیزم.نه تنها ناراحت نشدم بلکه بسیار از راهنماییتوون استفاده کردم.
موفق باشید:لبخندساده:
haste123
چهارشنبه 07 مرداد 1388, 18:14 عصر
من در اجرای برنامه زیر مشکل دارم اگر ان را تصحیح کنید خیلی خوب است هنگام اجرا علامت * ظاهر می شود و با فشردن هر کلیدی پس از چند ثانیه دوباره علامت * ظاهر می شود.
توضیحات:
موضوع : برنامه ماشين حساب براي اعداد بزرگ
اعمال ماشين حساب مورد نظر شامل جمع و تفريق و ضرب در اندازه هاي زير است.
دراين ماشين حساب اندازه اعداد تا حداکثر 25 رقم صحيح و 4 رقم اعشار است.
در ذخيره اعداد اعشاري حالت نماد علمي لازم نيست بلکه بصورت ساده استفاده شود.
راهنمايي : براي اين منظور آرايه 30 درايه اي بگيريد و 4 خانه براي اعشار و 25 خانه براي قسمت صحيح و يک خانه براي علامت آن درنظر بگيريد و هر رقم را دريک خانه قرار دهيد و اگر عدد قسمت اعشار نداشت، قسمت اعشار را صفر قرار دهيد. در ضمن تعداد ارقام عدد را نيز بايد نگهداري کنيد.
براي جواب عمل رياضي آرايه اي با طول حداکثر 40 خانه که 35 خانه براي قسمت صحيح و 4 قسمت اعشاري و يک خانه براي علامت عدد در نظر بگيريد
در قسمت ضرب طول دو عدد را بررسي کنيد و در صورت بزرگ بودن آن پيغام خطا توليد کنيد
هيچ گرافيکي در خروجي لازم نيست. (شبيه ماشين حساب هاي موبايل هاي ساده)
نمونه اي براي خروجي :
+12345678901234567890.0123
+
+98765432109876543210.0321
---------------------------------------
111111111011111111100.0444
کد برنامه که برایم نوشته اند زیب می باشد
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.