+ 1

c question, what is the problem ?

#include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> struct personal { char name[100],family[100]; long int phone; }s[100]; void add(int n) { printf("enter a name:\n"); scanf("%s",s[n+1].name); printf("enter a family:\n"); scanf("%s",s[n+1].family); printf("enter a phone number:\n"); scanf("%d",&s[n+1].phone); printf("mission accomplished."); } void editname(int n) { long int phone1; int i; char name1[100],family1[100]; printf("enter the phone number:\n"); scanf("%ld",&phone1); for(i=0;i<n;i++) { if(phone1==s[i].phone) { printf("enter a new name:\n"); scanf("%s",name1); strcpy(s[i].name,name1); printf("enter a new family:\n"); scanf("%s",family1); strcpy(s[i].family,family1); } } } void shownum(char name2[],char family2[],int n) { int i,a=0; for(i=0;i<n;i++) { if(strcmp(name2,s[i].name)==0&&strcmp(family2,s[i].family)==0) a=1; } if(a==1) printf("phone:%ld",&s[i].phone); el

20th Dec 2018, 5:29 PM
Fatemeh Rahimzadeh
Fatemeh Rahimzadeh - avatar
20 Respostas
+ 4
خب چرا هنوز برنامه بی در و پیکره؟ اشکال نداره بزار واست ی پروژه درست کنم. https://code.sololearn.com/c201XB6K45Sc این کد رو برای خودتم ذخیره کن تو پروفایلت داشته باشیش تا من یکم روش کار کنم.
20th Dec 2018, 7:24 PM
Babak
Babak - avatar
+ 4
ببین فاطمه جان delete ی کلمه کلیدی تو C++ هستش و نباید واسه نام گذاری متغیر، توابع، کلاس ها و غیره ازش استفاده بشه. می تونی به راحتی مشکلو با تغییر اون به ی چیزی مثل _delete حل کنی. برنامت هنوز ی مقدار مشکل داره که هنوز دارم روش کار می کنم.
20th Dec 2018, 7:54 PM
Babak
Babak - avatar
+ 4
منطق برنامت خیلی میزون نیست. ساختار تابع حذف و تابع اصلی رو تغییر دادم ولی توابع دیگه هنوز اون چیزی رو که ازشون انتظار میره رو انجام نمیدن. تا اینجای کار برنامه می تونه ی تعداد اسامی و شماره رو ذخیره کنه و به خوبی حذفشون کنه. ولی همونطور که گفتم توابع دیگه منطق مناسبی ندارن. void _delete(int n) { int i; char name4[100], family4[100]; printf("Enter a name and family for deletion: "); scanf("%s%s", &name4, &family4); for (i = 0; i < 100; i++) { if (!strcmp(name4, s[i].name)) { if (!strcmp(family4, s[i].family)) { printf("%s %s found!\nDeleting the entry...\n", name4, family4); strcpy(s[i].name, ""); strcpy(s[i].family, ""); s[i].phone = 0; } } } } int main() { int n, i, a; char name2[100], family2[100]; printf("enter the number of your audience:\n"); scanf("%d", &n); system("cls"); for (i = 0; i < n; i++) { printf("enter a name:\n"); scanf("%s", s[i].name); printf("\nenter a family:\n"); scanf("%s", s[i].family); printf("\nenter the phone number:\n"); scanf("%ld", &s[i].phone); } bool flag = false; while (!flag) { system("cls"); printf("1.add\n" "2.editname\n" "3.shownum\n" "4.delete\n" "5.show\n" "6.exsit\n"); scanf("%d", &a); switch (a) { case 1: add(n); getchar(); getchar(); break; case 2: editname(n); getchar(); getchar(); break; case 3: printf("enter a name:\n"); scanf("%s", name2); printf("enter a family:\n"); scanf("%s", family2); shownum(name2, family2, n); getchar(); getchar(); break; case 4: _delete(n); getchar(); getchar(); break; case 5: show(n); getchar(); getchar(); break; case 6: flag = true; break; } } return 0; }
20th Dec 2018, 8:51 PM
Babak
Babak - avatar
+ 4
"وقتی برنامه رو اجرا می کنم و5رومیزنم تابع شو" چون هنوز کار داره! دیشب همون دو قلمو اصلاح کردم ولی بقیش مونده. تو خودت راجع بهش چی فکر می کنی؟ فکر می کنی کجای کار می لنگه؟ "اون دستور بول که نوشتی توی زبان سی وجود داره؟" آره باید ی هدر <stdbool.h> رو به برنامه اضافه کنی
21st Dec 2018, 9:44 AM
Babak
Babak - avatar
+ 4
قبل از اینکه بهت جواب بدم بهم بگو چرا همه توابعو با آرگومان n فراخوانی کردی؟ این یکی از ایرادای بزرگ برنامته.
21st Dec 2018, 9:56 AM
Babak
Babak - avatar
+ 4
الان به فرض تو شروع برنامه دو تا اسموشماره رو وارد کردی. بعدش میخوای اسمو شماره نفره سومو به لیستت اضافه کنی. تابع add چطوری بفهمه که باید مشخصات نفر سوم بعد از آخرین نفر موجود در لیست وارد بشه؟
21st Dec 2018, 10:03 AM
Babak
Babak - avatar
+ 4
ببین فاطمه این کدو خودت نوشتی یا اینکه از ی جایی اقتباس کردی؟ من الان دارم ی بخش بزرگی از برنامه رو که کلا هیچ کاری انجام نمیده حذف میکنم.
21st Dec 2018, 10:26 AM
Babak
Babak - avatar
+ 3
باشه عزیزم. سعی می کنم ی دستی به سرو روش بکشم. عیباش که برطرف شد مجددا اتچ میکنم برات. بعدش اگه چیزی برات مبهم بود بپرس.
21st Dec 2018, 7:38 PM
Babak
Babak - avatar
+ 2
فاطمه جان همه ایرادای برنامه حل شده تا اینجای کار. می تونی اون کدی رو که تو پست اولم واست اتچ کردم چک کنی.
22nd Dec 2018, 3:58 PM
Babak
Babak - avatar
+ 2
همین که مشکلت حل شد این خودش کلی ارزشمنده برای من. می بینمت عزیزم.
23rd Dec 2018, 3:33 PM
Babak
Babak - avatar
+ 2
چونکه منتظر واسته واسه زدن ی کلید از کیبورد قبل از پاک کردن صفحه
23rd Dec 2018, 3:43 PM
Babak
Babak - avatar
+ 1
for(i=j-1;i<n-1;i++) { strcpy(s[i].family,s[i+1].family); strcpy(s[i].name,s[i+1].family); s[i].phone=s[i+1].phone; printf("result is:\n"); for(i=0;i<n-1;i++) printf("phone=%d",s[i].phone); } } } int main() { int n,i,a; char name2[100],family2[100]; printf("enter the number of your audience:\n"); scanf("%d",&n); system("cls"); for(i=0;i<n;i++) { printf("enter a name:\n"); scanf("%s",s[i].name); printf("\nenter a family:\n"); scanf("%s",s[i].family); printf("\nenter the phone number:\n"); scanf("%ld",&s[i].phone); } while(1) { system("cls"); printf("1.add\n2.editname\n3.shownum\n4.delete\n5.show\n6.exsit\n"); scanf("%d",&a); if(a==1) add(n); else if(a==2) editname(n); else if(a==3) { printf("enter a name:\n"); scanf("%s",name2); printf("enter a family:\n"); scanf("%s",family2); shownum(name2,family2,n); } else if(a==4) delete(n); else if(a==5) show(n); else if(a==6) return 0; } return 0; }
20th Dec 2018, 5:34 PM
Fatemeh Rahimzadeh
Fatemeh Rahimzadeh - avatar
+ 1
این برنامه است که قراره شبیه دفترچه تلفن عمل کنه ولی نمیدونم چه مشکلی توی تابع شو ودیلیت هستش؟
20th Dec 2018, 5:35 PM
Fatemeh Rahimzadeh
Fatemeh Rahimzadeh - avatar
+ 1
اون دستور بول که نوشتی توی زبان سی وجود داره؟چون تاجایی که من می دونم فقط توی سی پلاس وسی شارپ وجود داره
21st Dec 2018, 9:37 AM
Fatemeh Rahimzadeh
Fatemeh Rahimzadeh - avatar
+ 1
ببین یه سوال چرا توی تابع اد وقتی یه چیزی رو اضافه می کنی بعد می خوای بری روش یه سری تغییرات دیگه انجام بدی اون چیزی که اد کردم جز متغیر ها نیست ومن هیچ کاری نمی تونم روش انجام بدم چرا
21st Dec 2018, 9:51 AM
Fatemeh Rahimzadeh
Fatemeh Rahimzadeh - avatar
+ 1
نه خودم نوشتم اینو ببین میشه توی توضیحاتت تابع هارو انگلیسی ننویسی چون ترتیبش به می خوره نمی فهمم
21st Dec 2018, 6:29 PM
Fatemeh Rahimzadeh
Fatemeh Rahimzadeh - avatar
+ 1
"خودت چه فکری می کنی" به احساس می کنم که توی ارایه ها نمی ره یعنی یه چیزی صرفا می یاره و تواسم هازو میزنی ولی وارد ارایه نمیشه نمی دونم من یه همچین حسی دارم
21st Dec 2018, 6:33 PM
Fatemeh Rahimzadeh
Fatemeh Rahimzadeh - avatar
+ 1
خیلی ممنون خیلی لطف کردی امید وارم بتونم جبران کنم 😊😊😊
23rd Dec 2018, 5:46 AM
Fatemeh Rahimzadeh
Fatemeh Rahimzadeh - avatar
0
مرسی لطف کردی
22nd Dec 2018, 3:16 PM
Fatemeh Rahimzadeh
Fatemeh Rahimzadeh - avatar
0
بببین یه سوال چرا ته هر کس گت کر گذاشتی؟
23rd Dec 2018, 3:40 PM
Fatemeh Rahimzadeh
Fatemeh Rahimzadeh - avatar