定义一个结构体类型,表示银行账户信息: 每个帐户包含账号,用户身份证号码,用户姓名,用户地址,账户金额。 然后,输入各个字段的值,保存到结构体变量中,并打印结构体的各个字段查看结果。
一、结构体内定义数组变量
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct bank_account //定义别名为account (typedef比宏定义好)
{
char account_num[12]; //定义字符数组要留\0的空间,否则会出错
char id[20];
char name[10];
char address[100];
double money;
}account; //注意分号
int main()
{
/*
****直接初始化方法****
*/
//account lsh = {"88886666","410221199908245957","lushunhao","zhengzhou",5201314}; //初始化
//printf("输出结果:\r\n用户账号:%s\r\n身份证号:%s\r\n用户姓名:%s\r\n用户地址:%s\r\n账户金额:%lf\r\n",mycnt.account_num,mycnt.id,mycnt.name,mycnt.address,mycnt.money);
account mycnt;
printf("请输入一个账户:\r\n");
scanf("%s",mycnt.account_num); //\n是为了匹配字符串后的换行
printf("请输入一个身份证号:\r\n");
scanf("%s",mycnt.id);
printf("请输入一个姓名:\r\n");
scanf("\n%s",mycnt.name);
printf("请输入一个用户地址:\r\n");
scanf("\n%s",mycnt.address);
printf("请输入一个账户金额:\r\n");
scanf("%lf",&mycnt.money); //\n只能在输入字符串时使用
printf("输出结果:\r\n用户账号:%s\r\n身份证号:%s\r\n用户姓名:%s\r\n用户地址:%s\r\n账户金额:%lf\r\n",mycnt.account_num,mycnt.id,mycnt.name,mycnt.address,mycnt.money);
}
输出样式:
请输入一个账户:
12345678901
请输入一个身份证号:
199909278888
请输入一个姓名:
张三那
请输入一个用户地址:
河南省郑州市二七区火车站
请输入一个账户金额:
5201314
输出结果:
用户账号:12345678901
身份证号:199909278888
用户姓名:张三那
用户地址:河南省郑州市二七区火车站
账户金额:5201314.000000
二、结构体内定义指针
少量可以直接开辟空间(练习)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct bank_account
{
char *account_num;
char *id;
char *name;
char *address;
double money;
}account; //注意分号
int main()
{
account mycnt;
mycnt.account_num = (char*)malloc(100*sizeof(char)); //为指针开辟空间
mycnt.id = (char*)malloc(100*sizeof(char));
mycnt.name = (char*)malloc(100*sizeof(char));
mycnt.address = (char*)malloc(100*sizeof(char));
printf("请输入一个账户:\r\n");
scanf("%s",mycnt.account_num); //\n是为了匹配字符串后的换行
printf("请输入一个身份证号:\r\n");
scanf("%s",mycnt.id);
printf("请输入一个姓名:\r\n");
scanf("\n%s",mycnt.name);
printf("请输入一个用户地址:\r\n");
scanf("\n%s",mycnt.address);
printf("请输入一个账户金额:\r\n");
scanf("%lf",&mycnt.money); //\n只能在输入字符串时使用
printf("用户账号:%s\r\n身份证号:%s\r\n用户姓名:%s\r\n用户地址:%s\r\n账户金额:%lf\r\n",mycnt.account_num,mycnt.id,mycnt.name,mycnt.address,mycnt.money);
}
输出样式:
请输入一个账户:
12345678901
请输入一个身份证号:
410221199909278888
请输入一个姓名:
张三
请输入一个用户地址:
河南省郑州市
请输入一个账户金额:
5201314
用户账号:12345678901
身份证号:410221199909278888
用户姓名:张三
用户地址:河南省郑州市
账户金额:5201314.000000