בעיית מערכים בC - עמוד 2 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

בעיית מערכים בC


shai87

Recommended Posts

התוכנית מציגה במקום את הערכים שיישמתי כתובות או משהו כזה, למה זה קורה?

צריך לכתוב לפחות 30 תווים לבדיקה הזאת.

תודה!

#include <stdio.h>
#include <conio.h>
#define N 32


char getNum (char arr1[],char arr2[],int n);
char addNums(char arr1[],char arr2[],char arr3[],int n);
int main ()
{
char arr1[32];
char arr2[32];
char arr3[33];
getNum(arr1,arr2,N);
printf("\n %d %d\n",arr1[0],arr2[0]);
addNums(arr1,arr2,arr3,N);










getch();
return 0;
}


char getNum (char arr1[],char arr2[],int n)
{
int i,j,count;
char k=0,m=0,z=0,l=0;


printf("Please enter two positive numbers:\n ");
printf("num 1 ");


for (i=31;i>-1&&z!=1;i--){
k=scanf ("%c",&arr1[i]);
if (arr1[i]=='\n')
z=1;
if ((arr1[i]>'9'||arr1[i]<'0')&&z!=1)
{


printf("wrong input! ");
return 0;
}
}
i=i++;
count=i;
for (count;count>-1;count--){
arr1[count]=0;}


fflush(stdin);
printf(" num 2 ");
for (j=31,z=0;j>-1&&z!=1;j--){
m=scanf ("%c",&arr2[j]);
if (arr2[j]=='\n')
z=1;
if ((arr2[j]>'9'||arr2[j]<'0')&&z!=1)
{
printf("wrong input! ");
return 0;
}


}


j=j++;
for (count=j;count>-1;count--){
arr2[count]=0;}






}
char addNums(char arr1[],char arr2[],char arr3[],int n)
{
printf("%d %d %d %d %d %d %d",arr1[0],arr1[1],arr1[2],arr1[3],arr1[4],arr1[5],arr1[6]);
printf("\n%d %d %d %d %d %d %d",arr2[0],arr2[1],arr2[2],arr2[3],arr2[4],arr2[5],arr2[6]);}

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

אוי אתה צודק...תודה!

יואב איך נמנעים מטעויות כאלה?

טעויות כאלה קטנות מורידות לי שעה ולפעמים גם יותר עד שאני מבין מה קורה שם,

לא תמיד אני מצליח עם הדבאגר לעלות על הטעות..

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

נשארה לי בעיה אחת כל כך קטנה ואני לא מבין מה הבעיה

אני מנסה לחשב את 8+3 ולא את הכתובות שלהם, אני מנסה עם פוינטרים, בלי פוינטרים, בכל מקרה הוא מחשב לי 51+56

[attachment deleted by admin]

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

אני כבר לא יודע מה אני מנסה, ישבתי על זה חצי לילה, לא הלכתי ללימודים בגלל זה, ואני עדיין מנסה לפתור את זה,

כרגע זה ממש תקוע ומשהו שם פשוט לא עובד.

אשמח אם תוכל לבדוק מה הבעיה כאן, אני בסך הכל רוצה להכניס 2 מספרים, אם אחד המספרים גדול מהשני אז במערך הקטן יקבל אפסים איפה שאין ספרה.

אחר כך יש חישוב של כל איבר במערך הראשון+איבר מקביל במערך השני וזה נותן מספר במערך 3.

אני באמת מיואש יואב, אשמח אם תראה לי איפה אני טועה.

תודה!

מזה הסייז הזה בקוד? הוא רושם כאן בצורה לא מסודרת...

[size=0.7em]#include <stdio.h>[/size]
[size=0.7em]#include <conio.h>[/size]
[size=0.7em]#define N 32[/size]

[size=0.7em]char getNum (char arr1[],char arr2[],int n);[/size]
[size=0.7em]char addNums(char arr1[],char arr2[],char arr3[],int n); [/size]
[size=0.7em]int main ()[/size]
[size=0.7em]{[/size]
[size=0.7em] char arr1[32];[/size]
[size=0.7em] char arr2[32];[/size]
[size=0.7em] char arr3[33];[/size]
[size=0.7em] getNum(arr1,arr2,N);[/size]
[size=0.7em] addNums(arr1,arr2,arr3,N);[/size]





[size=0.7em] getch();[/size]
[size=0.7em] return 0;[/size]
[size=0.7em]}[/size]

[size=0.7em]char getNum (char arr1[],char arr2[],int n)[/size]
[size=0.7em]{[/size]
[size=0.7em] int i,j,count;[/size]
[size=0.7em] char k=0,m=0,z=0,l=0;[/size]

[size=0.7em] printf("Please enter two positive numbers:\n ");[/size]
[size=0.7em] printf("num 1 ");[/size]

[size=0.7em] for (i=31;i>-1&&z!=1;i--){[/size]
[size=0.7em] k=scanf ("%c",&arr1[i]);[/i][/size]
[size=0.7em] if (arr1[i]=='\n')[/i][/size]
[size=0.7em] z=1;[/size]
[size=0.7em]if ((arr1[i]>'9'||arr1[i]<'0')&&z!=1) [/i][/i][/size]
[size=0.7em]{[/size]

[size=0.7em] printf("wrong input! ");[/size]
[size=0.7em] return 0;[/size]
[size=0.7em] }[/size]
[size=0.7em] } [/size]

[size=0.7em] count=i;[/size]
[size=0.7em] for (count;count>-1;count--){[/size]
[size=0.7em] arr1[count]=0;}[/size]

[size=0.7em] fflush(stdin);[/size]
[size=0.7em] printf(" num 2 ");[/size]
[size=0.7em] for (j=31,z=0;j>-1&&z!=1;j--){[/size]
[size=0.7em] m=scanf ("%c",&arr2[j]);[/size]
[size=0.7em] if (arr2[j]=='\n')[/size]
[size=0.7em] z=1;[/size]
[size=0.7em] if ((arr2[j]>'9'||arr2[j]<'0')&&z!=1) [/size]
[size=0.7em] {[/size]
[size=0.7em] printf("wrong input! ");[/size]
[size=0.7em] return 0;[/size]
[size=0.7em] }[/size]

[size=0.7em] [/size]
[size=0.7em] } [/size]

[size=0.7em] [/size]
[size=0.7em] for (count=j;count>-1;count--){[/size]
[size=0.7em] arr2[count]=0;} [/size]

[size=0.7em] [/size]


[size=0.7em]}[/size]
[size=0.7em]char addNums(char arr1[],char arr2[],char arr3[],int n)[/size]
[size=0.7em]{[/size]
[size=0.7em] char i,j,w,a=0,bit1,bit2;[/size]

[size=0.7em] int la;[/size]
[size=0.7em] for (j=31,i=31,la=0;la>-1;la++,j--,i--){[/size]
[size=0.7em] [/size]


[size=0.7em] arr3[31-la]=arr2[j]+arr1[i]-'0';[/i][/size]

[size=0.7em] }[/size]
[size=0.7em] for (w=31,la=0;w>-1;w--,la++)[/size]
[size=0.7em] printf("%c",arr3[31-la]);[/size]

[size=0.7em]}[/size]

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

יש לי שתי בעיות קטנות כאן

1)אם החיבור גדול מ-9

2)אני רוצה להעלים את האפסים בסוף אבל מצד שני אם יש אפס באמצע המספר זה בסדר לכן אני תקוע אם התנאי

[attachment deleted by admin]

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

ארכיון

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

×
  • צור חדש...