- محدودیت زمان: ۱ ثانیه
- محدودیت حافظه: ۱۲۸ مگابایت
علی بعد از گذراندن درس مبانی برنامه نویسی با نمره ۱۰.۲۵ با یک شرکت پرسابقهی تولید نرم افزارهای ناکارآمد کامپیوتری قراردادی یک ساله امضا کرد. این قرارداد از جنبههای مختلف با روحیات او سازگار بود، اما اجرای یک بند از قرارداد برای او غیرممکن به نظر میرسید.
این بند از قرار داد از این قرار بود:
تبصره بند ۳۹۵۲: برنامه نویس موظف است کلیه کدهای خود را تمیزسازی کرده و با استاندارد زیر تحویل دهد:
- همه بلاکهای داخلی (بلاک تابع،
for
،if
وwhile
) دقیقا با یک تو رفتگی(کاراکترtab
) نسبت به خط شروع بلاکشان میآیند. - بلاکها حتما با کاراکتر
}
شروع و با کاراکتر {
تمام میشوند. - کاراکتر
}
در شروع بلاک همیشه در انتهای خط دستور مربوطهاش چسبیده به پرانتز و کاراکتر{
انتهای بلاک با تورفتگی مناسب در یک خط مجزا میآید. - دستور
else
بعد از کاراکتر{
انتهای بلاکif
مربوط به خود میآید. - قبل و بعد از همه عملگرهای دو عملوندی یک کاراکتر اسپیس میآید.
- عملگرهای تک عملوندی چسبیده به عملوند خود میآیند.
- برای جداسازی با استفاده از کاراکتر
,
این کاراکتر به کاراکتر قبلی خود چسبیده و بعد از آن فاصله میآید. - کاراکتر
;
در انتهای هر خط به کاراکتر قبلی خود میچسبد و درونfor
بعد از;
یک فاصله میآید. - محتوای درون پرانتز و کروشه بدون فاصله از کاراکترهای
()
و{}
میآیند. - خط خالی درون کد وجود ندارد.
- هیچ جای کد فاصله بی جا نباید وجود داشته باشد و هرجا نیاز به فاصله شود دقیقا یک کاراکتر اسپیس باید بیاید.
- پرانتز ساختارهای
while, if , for
چسبیده به این کلمات میآید.
از آن جایی که علی به تازگی وارد بازار کار شده است مسئولین شرکت انتظارات زیادی از او ندارند و به همین دلیل او برای کد زدن تنها از امکانات زیر از زبان C
استفاده میکند:
- توابع
- متغیرها و عبارات ریاضی و دستور انتساب
for
if, else, else if
while
Include
های ابتدای کد(که تمیزبودن آنها تضمین میشوند و نیازی به اصلاح ندارند.)
از آنجایی که علی از ابتدای حیاتش با تمیز کد زدن مشکل داشته است با این که کدهایش همیشه درست بوده و کامپایل میشده اما در تحویل تمیز آن به مدیر فنی شرکت با مشکل جدی روبه رو شده است. به علی کمک کنید تا کدهایش به زبان سی که به درستی کامپایل میشوند را با توجه به خواست شرکت تمیز کند.
ورودی
در ورودی یک کد صحیح به زبان C
میآيد که در هر خط آن تنها یک دستور وجود دارد.
طول کد کمتر از ۱۰۰۰۰۰ کاراکتر است.
خروجی
شما باید کد تمیز شده بر اساس معیارهای شرکت را در خروجی چاپ کنید.
مثال:
ورودی نمونه:
#include <stdio.h>
int main (){
int i,n;
float arr [100 ];
printf ("Enter numbers :");
scanf ("%d" ,&n);
printf ("\n");
for(i=0;i<n;++i)
{
printf ("%d",i+1);
scanf ("%f" ,&arr[i]);
}
for(i=1;i<n;++i){
if(arr [0] < arr[i])
arr [0]= arr[i];
}
printf (" largest is %.2f",arr [0]);
return 0;
}
خروجی نمونه:
#include <stdio.h>
int main (){
int i, n;
float arr [100];
printf ("Enter numbers :");
scanf ("%d", &n);
printf ("\n");
for(i = 0; i < n; ++i){
printf ("%d", i + 1);
scanf ("%f", &arr[i]);
}
for(i = 1; i < n; ++i){
if(arr [0] < arr[i])
arr [0] = arr[i];
}
printf (" largest is %.2f", arr [0]);
return 0;
}
ارسال پاسخ برای این سؤال