intmain(void){
structstudentsbao={}
printf("%d,%s\n",bao.id,bao.name)//输出是4224528,空(应该是null)
//structstudentsbao={3,"123"}可以。第一种赋值方法
//strcpy(bao.name,"bao")//可以,
//printf("%d,%s\n",bao.id,bao.name)
//bao.name="bao"错误“stray'\351'inprogram”其他是乱码,
//bao.name[0]='a'
//bao.name[0]='/0'
//printf("%d,%s\n",bao.id,bao.name)
/*这样可以,*/
//chararr[10]="baobao"
////bao.name=arr//error"assignmenttoexpressionwitharraytype"
//scanf("%s",bao.name)//可以,
//printf("%d,%s\n",bao.id,bao.name)
//所以scanf那一类函数都可以。
//还有就是memcpy函数也是可以的
return0
}
扩展资料
C语言结构体数组的直接赋值及数组的长度计算:
#include<stdio.h>
//自定义一个字符串的结构体,包含字符串和字符串长度两个变量
typedefstructStr{
charch[100]
intlength//char数组(字符串)的长度
}myStr
//刚开始声明变量时每个变量的字符串长度length都为0
//这里以长度为10的数组为例,数组长度是1000
//对第0个到第9个结构体数组的长度同时赋值为0
myStrmyStr1[10]={
[0...9]={
.length=0,
}
}
intmain(){
inti
for(i=0i<10i++){
printf("%d\n",myStr1[i].length)
}
return0
}
你漏写了取地址符“&”,加上后就好了:
#include<stdio.h>struct student2
{
int number
char name[10]
char sex
float score[3]//3科成绩
}
int main()
{
int i,j
struct student2 stu[4]//结构体数组
printf("input\n")
for(i=0i<4i++)
{
scanf("%d %s %c", &stu[i].number,&stu[i].name,&stu[i].sex)
printf("%d, %s, %c,",stu[i].number,stu[i].name,stu[i].sex)
}
return 0
}
输出如下:
#include<stdio.h>#include<time.h>
#include<string.h>
#include<stdlib.h>
#define N 34
struct student {
int ID
char name
int mscore//数学成绩
int escore//英语成绩
int cscore//语文成绩
}stu[N]
void Input(struct student stu,int n)
char search(int a,char b)
/*float time ()
{
time_t t
struct tm * lt
time (&t)//获取Unix时间戳。
lt = localtime (&t)//转为时间结构。
printf ( "%d/%d/%d %d:%d:%d\n",lt->tm_year+1900, lt->tm_mon, lt->tm_mday, lt->tm_hour, lt->tm_min, lt->tm_sec)//输出结果
}
*/
/*
void main()
{ int select
FILE *fp
printf("1.学生成绩录入:\n")
printf("2.所有学生成绩显示:\n")
printf("3.学生信息查询:\n")
printf("4.学生信息增添\n")
printf("5.学生信息删除\n")
printf("6.学生信息统计\n")
printf("请输入要执行的操作:")
scanf("%d",select)
switch(select)
{case 1:Input(stu)// f(1)实现对N名学生成绩的录入并储存
case 2:fp=fopen("static.txt","r")break //显示所有学生成绩
case 3:search(int id,char nam)break //通过学号或姓名查询
case 4:f(4)break //添加信息
case 5:f(5)break //删除
case 6:f(6)break //统计不及格学生人数和名单,统计各个分数段人数及比例
}
}
*/
void INPUT() {
FILE *fp
fp = fopen("static.txt","wt")
for(i = 0 i < N i++) {
printf("please input the ID name and grades:")
scanf("%d %s %f %f %f",&stu[i].ID,stu[i].name,&stu[i].mscore,&stu[i].escore,&stu[i].cscore)
fprintf(fp,"%d %s %f %f %f\n",stu[i].ID,stu[i].name,stu[i].mscore,stu[i].escore,stu[i].cscore)
}
fclose(fp)
}