void change(int *sum) { int i,a; char b,c; while(a==0) { printf("\n请输入你想更改的人的姓名:"); scanf("%s",&c); for(i=0;i<N;i++) { if(c==person[i].name) break; } for(i;i<=i+1;i++) { printf("\n请分别输入更改后姓名、昵称、电话号码、邮箱、家庭地址(用英文逗号隔开):\n"); scanf("%s %s %s %s %s",person[i].name,person[i].pet,person[i].phone,person[i].email,person[i].address); } printf("\n是否继续更改:"); scanf("%c",b); if(b="否") a==1; } }
时间: 2023-06-25 07:04:07 浏览: 90
CString,int,string,char之间的转换.txt
4星 · 用户满意度95%
这段代码存在一些问题,我来给你分析一下:
1. while 循环中的 a 变量没有初始化,可能会导致不可预期的结果。
2. scanf("%s",&c) 语句中,c 变量为字符型,但是 %s 格式化符号表示字符串,应该使用 %c 格式化符号。
3. 在 for 循环中,如果输入的姓名不在数组 person 中,i 的值会超出数组范围,可能会导致程序崩溃。
4. for 循环中的第二个条件 i<=i+1 没有意义,应该直接写成 i++。
5. 在 scanf("%c",b) 语句中,应该使用 &b 而不是 b,因为 b 是一个字符型变量的地址。
6. 在 if(b="否") 语句中,应该使用 == 而不是 =,因为 == 表示相等比较,= 表示赋值操作。
7. a==1 应该改为 a=1。
综上所述,这段代码需要进行一些修正才能正确运行。
阅读全文