בעיה עם פוינטרים - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

בעיה עם פוינטרים


efod26

Recommended Posts

שלום, הקוד הבא אמור לקבל מהמשתמש 3 תווים או מספרים ולתת את הגבוה, יש איתו בעיה בפלט ובעיה בקלט התווים

אולי בקשה גדולה מידי אבל מישו יכול להגיד לי מה הבעיה???

#include<stdio.h>

#define SIZE 3

void main_1(int *n ,int ar[] ,int ar2[],int *d);
void read_num(int ar[], int n);
void read_ab (char ar2[], int n);
void max_num(int ar[] ,int n ,int *d);
void max_ab(char ar2[] ,int n ,int *d);


int main()
{
int d ,x = 0;
int a[SIZE];
char b[SIZE];

printf("For Num Check Press 1\nFor letters press 2\n");
scanf("%d",&x);
main_1(&x,a,b,&d);

}

void main_1(int *n ,int ar[] ,int ar2[] ,int *d)
{
switch (*n)
{
case 1 : read_num(ar ,SIZE ,&d);
break;
case 2 : read_ab(ar2 ,SIZE ,&d);
break;
default : printf("Error Input\n");
}
}

void read_num(int ar[] ,int n ,int *d)
{
int i;
printf("enter 3 numbers\n");
for(i = 0; i < n; i++)
{
scanf("%d",&ar[i]);
}
max_num(ar ,SIZE ,&d);
}

void read_ab(char ar2[] ,int n ,int *d)
{
int i;
printf("enter 3 letters\n");
for(i = 0; i < n; i++)
{
scanf("%c",&ar2[i]);
}
max_ab(ar2 ,SIZE ,&d);
}



void max_num(int ar[] ,int n ,int *d)
{
int i ,temp = ar[0];

for (i = 1; i < n; i++)
{
if(ar[i] > temp)
{
*d = ar[i];
temp = ar[i];
}
else
{
*d=temp;
}
}
printf("\nThe Maximum Number Is: %d \n",d);
}

void max_ab(char ar2[] ,int n ,int *d)
{
int i ,temp = ar2[0];

for (i = 1; i < n; i++)
{
if(ar2[i] > temp)
{
*d = ar2[i];
temp = ar2[i];
}
else
{
*d=temp;
}
}
printf("\nThe Maximum letter Is: %c \n",d);
}

קישור לתוכן
שתף באתרים אחרים

void main_1(int *n ,int ar[] ,int ar2[] ,int *d)

בשורה הזאת , d מוגדר כ pointer ל int, בתוך ה CASE אתה שולח את &d, מה שאומר שאתה בעצם שולח את הכתובת של d,

בשורה void read_num(int ar[] ,int n ,int *d) אתה מגדיר את d שוב כ Pointer ל INT, כאשר בפועל אתה שולח pointer ל pointer ל Int.

הבעייה הזאת מופיעה אצלך כמה פעמים.

קישור לתוכן
שתף באתרים אחרים

קלט מספרים עובד אחרי ששינית מהכתובת d לערך עצמו, עכשיו הבעיה שהייתה עוד קודם,

בפונקציה read_ab אני אמור לקלוט 3 תווים אם ככה בחר המשתמש, אבל אחרי קליטת תו אחד הוא מראה אותו

כמקס' ויוצא החוצה.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...