כתיבת קוד ב C

shirazeitan

New member
כתיבת קוד ב C

היי קיבלתי תרגיל
את התכנית הבאה עליכם לממש ללא שימוש בהוראת if, אופרטור טרינארי:)?), switch.
כתבו תכנית המבקשת וקולטת 2 מספרים A ו-B
התוכנית מדפיסה 1 אם A מתחלק ב B , או B מתחלק ב A ללא שארית. אחרת יודפס 0. עבור הפלטים הבאים.
כתבתי קוד בויזאול , אין לי מושג אם הקוד הזה הגיוני ,ז"א אם הוא יעשה את מה שמתבקש בתרגיל. הויזאול רושם לי כמה הערות שגויות לגבי הקוד .
להלן הערות:
Warning 1 warning C4013: 'scanfs' undefined; assuming extern
returning int
Error 2 error C2106: '=' : left operand must be l-value​
בבקשה תעזרו לי עם הפתרון של התרגיל ועם מה עשיתי לא בסדר. (יצאתי מנקודת הנחה שאם הביטוי הוא אמת המחשב יתן 1 ואם הוא שקר הוא יתן 0.
קוד:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
int main(){
	int a, b;
	double x;
	printf("enter two numbers");
	scanfs("%d%d", &a, &b);
	x = (a / b % 10 = 0 || a / b % 10 = 0);
	printf("%lf", x);
	getch();
	return 0;
}

 

spiritus asper

New member
לגבי השגיאה

את משתמשת ב-= (השמה) במקום == (השוואה).
לגבי הלוגיקה, אם את רוצה לבדוק האם מספר מתחלק באחר ללא שארית, אפשר לעשות עליהם מודולו ולראות אם חזר 0.
למשל:
קוד:
int a = 8;
int b = 4;
int r = a % b;

// r == 0? we're good to go.
 
למעלה