انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: سوال c  (دفعات بازدید: 1038 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین AAAAAAAAAAAAAAAAAAAA

  • High Sr. Member
  • *
  • ارسال: 506
  • :(
سوال c
« : 25 خرداد 1395، 10:29 ب‌ظ »
کدی مثل این کد رو کامپایل کردم
# include <stdio.h>


        main()
{
                int var;
        for (var = 400,var >= 0 ,var = var-20 )
            printf( "%3d %6.1f\n" , var , (5.0/9.0)*(var-32));
}
و این خطا رو گرفتم
thermometer.c: In function ‘main’:
thermometer.c:7:44: error: expected ‘;’ before ‘)’ token
  for (var = 400,var >= 0 ,var = var-20 )
                                            ^
thermometer.c:7:44: error: expected expression before ‘)’ token
واقعا نمیفهمم، مشکل چیه؟

آفلاین 藤沼

  • Sr. Member
  • *
  • ارسال: 414
  • جنسیت : پسر
پاسخ : سوال c
« پاسخ #1 : 25 خرداد 1395، 10:59 ب‌ظ »
#include <stdio.h>


int main(void)
{
    for (int i = 400; i >= 0; i = i-20)
        printf( "%3d %6.1f\n" , i , (5.0/9.0)*(i-32));
    return 0;
}

۱-در زبان سی باید روشن کنید هر تابع چه نوعی برمی‌گردونه. به‌جز استاندارد c89 که پیش‌فرض int درنظر گرفته می‌شه.
۲-بین include و # فاصله گذاشتید که اینکار در ماکروها اشتباه‌ست.
۳-در حلقهٔ for بین عبارت‌ها به‌جای ; از , استفاده کردید.
۴-آخرین استاندارد c11 است بنابراین می‌تونید متغیر محلی درون for تعریف کنید.

پیشنهاد می‌کنم اگر زبان سی رو فرامی‌گیرید اول کتاب K&R رو بخونید و بعد دانشتون رو دربارهٔ زمینه‌های دیگه برای مثال؛ x86 assembly و غیره بگسترانید.
« آخرین ویرایش: 25 خرداد 1395، 11:21 ب‌ظ توسط fujinuma »

آفلاین AAAAAAAAAAAAAAAAAAAA

  • High Sr. Member
  • *
  • ارسال: 506
  • :(
پاسخ : سوال c
« پاسخ #2 : 25 خرداد 1395، 11:18 ب‌ظ »
#include <stdio.h>


int main(void)
{
    for (int i = 400; i >= 0; i = i-20)
        printf( "%3d %6.1f\n" , i , (5.0/9.0)*(i-32));
    return 0;
}

۱-در زبان سی باید روشن کنید هر تابع چه نوعی برمی‌گردونه. به‌جز استاندارد c89 که اگر مشخص نکنید یک تابع چه نوعی برمی‌گردونه int درنظر گرفته می‌شه.
۲-بین include و # فاصله گذاشتید که اینکار در ماکروها اشتباه‌ست.
۳-در حلقهٔ for بین عبارت‌ها به‌جای ; از , استفاده کردید.
۴-آخرین استاندارد c11 است بنابراین می‌تونید متغیر محلی درون for تعریف کنید.
ممنون
این طور که معلومه کتابی که من دارم از روش مطالعه می کنم زیادی قدیمی شده.
جایی هست که تفاوت های سینتکس این استاندارد با استاندارد های قبلی و استاندارد های قبلی با قبلی تر ها و... نوشته  شده باشه ؟ من چیزی در اینترنت پیدا نکردم

آفلاین 藤沼

  • Sr. Member
  • *
  • ارسال: 414
  • جنسیت : پسر
پاسخ : سوال c
« پاسخ #3 : 25 خرداد 1395، 11:38 ب‌ظ »