PDA

View Full Version : سوال: رفع خطای برنامه نویسی



saeed2710
دوشنبه 12 مرداد 1394, 23:37 عصر
سلام
برنامه زیر به زبان c به منظور چک کردن اینکه آیا قسمت اعشار یک عدد مقلوب(برعکس) قسمت صحیح آن هست یا نه نوشته شده اما مجموعه خطاهای زیر حین اجرا به وجود می آید
Error 1 error C2296: '%' : illegal, left operand has type 'float'
Error 2 error C2296: '%' : illegal, left operand has type 'float'
3 IntelliSense: expression must have integral type
4 IntelliSense: expression must have integral type


به نظر شما مشکل کجاست؟







#include "stdafx.h"
#include <stdio.h>
#include <conio.h>

int main()
{
float num,tn, decimal, tdec, actual, reverse = 0, dig, i = 0, j = 0;
printf("Welcome to Checking Numbers Program\n");
printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n");
printf("\n");//new line
printf("Type a Positive None Zero Float number:\n");

while (1)
{
scanf_s("%f", &num);
if (num == 0)
{
printf("Zero number Entered , End of Filing\n");
}
else
{
tn = num;
actual = tn / 1;
decimal = tn % 1;
tdec = decimal;
while (actual > 0)
{
dig = actual % 10;
actual = actual / 10;
reverse = reverse * 10 + dig;
i++;
}
while (j <= i)
{
tdec = tdec * 10;
j++;
}
if (tdec = reverse)
printf("The number Entered is True\n");
else
printf("The number Entered is False\n");
}

}
return(0);
}

pbm_soy
سه شنبه 13 مرداد 1394, 02:28 صبح
آیا مطمئن هستید که خطای حین اجرا دارید؟! نه خطای گرامری (synatx error) ؟!!!

کد نامنظم و خیلی ناخوانا است!
فقط موردی که من پیدا کردم با نگاه گذرا این خط است

if (tdec = reverse)
که باید دوتا مساوی در شرط استفاده کنید

saeed2710
پنج شنبه 15 مرداد 1394, 10:13 صبح
خیلی ممنون ولی متاسفانه خطای syntax ندارم و خطاها همون 4 تای اول صفحه میمونه...

zrgAsadi
پنج شنبه 15 مرداد 1394, 16:55 عصر
سلام، با اجازه از اساتید
متن برنامه خطای گرامری (syntax) داره و برنامه اجرا نمی شه
خطاهایی که اعلام می شه برای استفاده از عملگر % با اعداد اعشاری هست
در صورتی که عملوندهای این عملگر (عددها یا متغیرهای دو طرف آن) صحیح باشند یا به صحیح تبدیل شوند این خطا برطرف می شود.
مثلا متغیرهای tn و actual رو به صورت int تعریف کنید.
مورد مساوی دوتایی در دستور شرطی if رو هم استادمون قبلا گفتند.

StepUp
پنج شنبه 05 شهریور 1394, 10:17 صبح
دوتا از خطاهاتون
یکی اینه در if باید دوتا مساوی بزارید!
دیگری هم اینکه به جای float از int استفاده کنید