首页 新闻 会员 周边 捐助

关于一个简单程序导致写入错误,如何解决这一类问题

0
悬赏园豆:40 [待解决问题]
 1 /*
 2 简陋的交互来输入自己的基本信息
 3 基本信息(数据):姓名;
 4 性别;
 5 年龄;
 6 身高;
 7 体重;
 8 联系方式;
 9 就读学校;
10 家庭地址;
11 
12 */
13 #include<stdio.h>
14 #include<string.h>  //提供strlen的函数原型
15 
16 //#define INCH  2.54;//一英寸=2.54厘米
17 #pragma warning(disable:4996)
18 int main(){
19     char c_name[10];
20     char c_sex[10];
21     int i_age=1;
22     int i_height=1;
23     int i_weight=1;
24     long int i_phone=1;
25     char c_school[100];
26     char c_address[100];
27 
28     printf("------------------------\n");
29     printf("根据提示输入您的基本信息\n");
30     printf("------------------------\n");
31     printf("请输入您的姓名:");
32     scanf("%s", c_name);
33     printf("请输入您的性别:", c_name);
34     scanf("%s", c_sex);
35     printf("请输入您的年龄:");
36     scanf("%d", i_age);
37     printf("请输入您的体重:");
38     scanf("%d", i_weight);
39     printf("请输入您的身高:");
40     scanf("%d", i_height);
41     printf("请输入您的联系方式:");
42     scanf("%ld", i_phone);
43     printf("请输入您的就读校址:");
44     scanf("%s", c_school);
45     printf("请输入您的家庭地址:");
46     scanf("%s", c_address);
47     printf("------------------------\n");
48     return 0;
49 
50 }

c
资深呆的主页 资深呆 | 初学一级 | 园豆:37
提问于:2016-01-22 17:52
< >
分享
所有回答(2)
0

 c读取整数的时候要使用取地址符:scanf("%d",&i_age);

南方小智 | 园豆:202 (菜鸟二级) | 2016-01-23 06:08
0

用scanf()读取输入并存储到变量中,在函数中改变变量的值,就要向scanf()传递指向变量的指针。

如变量是int a,需要传递指向a的指针&a,对应scanf函数语句为 scanf("%d",&a);

若变量是一个char数组 char a[],此时指向a[]的指针就是数组名a,对应语句为 scanf("%s",a);

楼主的程序中对应的正确scanf语句应该为

scanf("%s", c_name);
printf("请输入您的性别:", c_name);
scanf("%s", c_sex);
printf("请输入您的年龄:");
scanf("%d", &i_age);
printf("请输入您的体重:");
scanf("%d",&i_weight);
printf("请输入您的身高:");
scanf("%d", &i_height);
printf("请输入您的联系方式:");
scanf("%ld", &i_phone);
printf("请输入您的就读校址:");
scanf("%s", c_school);
printf("请输入您的家庭地址:");
scanf("%s", c_address);
BingQiang | 园豆:209 (菜鸟二级) | 2016-01-23 13:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册