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

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

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

نویسنده موضوع: خطا زمان کامپایل یا زمان اجرای برخی کدها در زبان C  (دفعات بازدید: 3954 بار)

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

آفلاین Mr-virus

  • Full Member
  • *
  • ارسال: 136
  • جنسیت : پسر
اعلان و تعریف متغیر به فرم [i ] x صحیح نیست.
شما متغیر عددی i را مقدار دهی اولیه نکردین.   initialize

الان به دلیل اینکه متغیر i مقدار اولیه نامعتبر Garbage Value دارد تعریف آرایه به طول i صحیح نیست.
سلام.ممنون از توجهتون.بنده اومدم در همین سورس یک تغییر ایجاد کردم به صورتی که
#include<stdio.h>
#include <stdlib.h>
int main()
{
    int j ,i = 5, x[i] ;
    printf("please enter a number\n");
    scanf("%d" , &i);
    for( j = 0 ; j < i ; j++ )
    {

        scanf("%d",x[j]);
        return 12;
    }
    for(j = 0 ; j < i ; j++ )
    {
        printf ("\nx is %d" , x[j]);
        return 13;
    }
}

اما باز هم همون ارور رو گرفتم!

آفلاین esmaeelE

  • ناظر انجمن
  • *
  • ارسال: 1270
  • جنسیت : پسر
scanf   اول چه عددی می زنید؟
پس از هر اسکن عدد موجود در آن متغیر را چاپ کنید.

درکل گام به گام پیش برید
اول ببینید اسکن کردن تا مقادیر درون آرایه درست انجام میشه.
بعد سعی کنید محتوای آرایه را چاپ کنید

آفلاین Mr-virus

  • Full Member
  • *
  • ارسال: 136
  • جنسیت : پسر
scanf   اول چه عددی می زنید؟
پس از هر اسکن عدد موجود در آن متغیر را چاپ کنید.

درکل گام به گام پیش برید
اول ببینید اسکن کردن تا مقادیر درون آرایه درست انجام میشه.
بعد سعی کنید محتوای آرایه را چاپ کنید

سلام.هر عددی برای i قرار میدم مشکل وجود داره.اولین عدد ارایه وارد میشه ارور میگیرم.

آفلاین esmaeelE

  • ناظر انجمن
  • *
  • ارسال: 1270
  • جنسیت : پسر
تابع اسکن را به این شکل استفاده کنید.
scanf("%d",&x[j]);
برای اینکه از این دست مشکلات دیگر نداشته باشید

۱) مستندات لازم برای استفاده توابع را مطالعه کنید.
۲) درصورتی که با کامپایلر GCC کار می کنید آرگومان Wall را در زمان کامپایل فعال کنید بسیاری از اشکلات اینچنینی را گزارش می کند.
۳) از گوگل و استک اوورفلو استفاده کنید.

مثلا جستجو عبارتی نظیر این شما را به نحوه صحیح استفاده از اسکن راهنمایی می کند.
c scanf int array

پی نوشت


۱) این مشکل به وضوح خطای زمان اجراست. Runtime error
۲) به دلیل مشکلات scanf از تابع fscanf یا fgets استفاده کنید.
۳) این شکل صدا زدن اسکن مناسب برای آرایه کاراکتری است بدون &
« آخرین ویرایش: 30 آذر 1398، 05:12 ق‌ظ توسط esmaeelE »

آفلاین Mr-virus

  • Full Member
  • *
  • ارسال: 136
  • جنسیت : پسر
تابع اسکن را به این شکل استفاده کنید.
scanf("%d",&x[j]);
برای اینکه از این دست مشکلات دیگر نداشته باشید

۱) مستندات لازم برای استفاده توابع را مطالعه بفرمایید.

https://en.cppreference.com/w/c/io/fscanf

۲) درصورتی که با کامپایلر GCC کار می کنید آرگومان Wall را در زمان کامپایل فعال کنید بسیاری از اشکلات اینچنینی را گزارش می کند.

۳) از گوگل و استک اوورفلو استفاده کنید.مثلا جستجو عبارتی نظیر این شما را به نحوه صحیح استفاده از اسکن راهنمایی می کند.
c scanf int array



پی نوشت


۱) این مشکل به وضوح خطای زمان اجراست.
Runtime error

۲) به دلیل مشکلات scanf از تابع fscanf استفاده کنید.
۳) این شکل صدا زدن اسکن مناسب برای آرایه کاراکتری است بدون &
ممنونم