C语言小程序的错误

来源:百度知道 编辑:UC知道 时间:2024/06/17 15:01:41
#define maxlen 60
#include<stdio.h>
#include<alloc.h>
typedef struct{
char name[10];
char sno[10];
char sex;
int age;
char *adress;
int score;
}SC;
main()
{
SC s1;
s1.adress=(char *)malloc(maxlen);
printf("\n input name (length<10):");
scanf("%s",s1.name);
printf("\n input sno,sex,age,score,adress:\n");
scanf("%s,%c,%d,%d",s1.sno,&s1.sex,&s1.age,&s1.score);
gets(s1.adress);
printf("\n name=%s,sno=%s,sex=%c",s1.name,s1.sno,s1.sex);
printf("\n age=%d,adress=%s,score=%d",s1.age,s1.adress,s1.score);
getch();
}
前3楼的我都试过了不行
我输入:ei,032,m,23,433,tian jin
输出结果为name=ei,sno=032,下面就错了m,23,tian,sex=j
age=2983,adress=jin,score=8984

字符串的结束标记不能用',',要用空格,
输入:ei,032,m,23,433,tian jin
改成输入ei 032,m,23,433,tian jin
ei后面的','要改成空格。

#include<stdio.h>
#include<alloc.h>
typedef struct{
char name[10];
char sno[10];
char sex;
int age;
char *adress;
int score;
}SC;
main()
{
SC s1;
s1.adress=(char *)malloc(maxlen);
printf("\n input name (length<10):");
scanf("%s",s1.name);
printf("\n input sno sex,age,score,adress:\n");
scanf("%s %c,%d,%d,",s1.sno,&s1.sex,&s1.age,&s1.score);
gets(s1.adress);
printf("\n name=%s,sno=%s,sex=%c",s1.name,s1.sno,s1.sex);
printf("\n age=%d,adress=%s,score=%d",s1.age,s1.adress,s1.score);
getch();
}

printf("\n name=%s,sno=%s,sex=%c",s1.name,s1.sno,s1.sex);
这个有些问题 性别应该也是字符串 nan 不是一个字符吧
c中可是不出现汉字的 你应该上级试试