#include <stdioh>
int main()
{
char name[15];
char number[20];
puts ("请输入姓名:");
gets ( name );
puts ("请输入学号:");
gets ( number );
printf ("您的姓名是:%s", name);
printf ("您的学号是:%s", number);
getchar();
getchar();
return 0;
}
试了试,可以排序啊。有几个简单的错误不知道是不是因为你提问时打错了。第一个,printf提示是不能直接用汉语的吧。还有就是if(strcmp(name[min],name[j]>0))括号加的不大对,if(strcmp(name[min],name[j])>0)然后,我输入就可以了。什么内存错误,没有发现。如果有问题,请及时补充。
#include <stdlibh>
struct data
{
char name[20];
char phone[20];
char address[20];
} people[5];
int main()
{
FILE p;
int i;
p=fopen("D:\\phonetxt","w");
if(p==NULL)
{
printf("打开文件失败\n");
exit(0);
}
for(i=1;i<=5;i++)
{
printf("输入第%d个人的信息,空格顿开,回车结束\n",i+1);
scanf("%s%s%s",people[i]name,people[i]phone,people[i]address);
fwrite(&people[i],sizeof(people[i]),1,p);
fprintf(p,"\n");
}
fclose(p);
return 0;
}
另外,团IDC网上有许多产品团购,便宜有口碑
#include<stdioh> #define NUM 5 void main() { struct xue { char name[20]; char nummber[20]; char chenji[10]; }; struct xue menber[NUM]; int i; for(i=0;i<NUM;i++) { printf("输入第%d个人的姓名,学号,成绩,\n",i+1); printf("姓名:"); gets(menber[i]name); printf("学号:"); gets(menber[i]nummber); printf("成绩:"); gets(menber[i]chenji); } printf("\n\n学号\t\t\t姓名\t\t\t成绩\n\n"); for(i=0;i<NUM;i++) { printf("%s\t\t\t%s\t\t\t%s",menber[i]nummber,menber[i]name,menber[i]chenji); printf("\n"); } }
#include <stdioh>
#define N 200
#define SCORES 5
#define NUMLEN 10
struct std_type{
char no[NUMLEN];/学号/
char name;/名字字符串指针/
int scores[SCORES];/五门功课的成绩/
};
struct std_type students[N];
int order[N];
int total[N];
/[函数]输入一个学生信息函数/
int readastu(struct std_type spt)
{
int len,j;
char buf[120];/输入学号/
printf("\nNumber : ");
if(scanf("%s",buf)==1)
strncpy(spt->no,buf,NUMLEN-1);
else
return 0;/CTRL+Z结束输入/
printf("Name : ");/输入姓名/
if(scanf("%s",buf)==1)
{
len=strlen(buf);
spt->name=(char)malloc(len+1);/申请储存姓名的空间/
strcpy(spt->name,buf);
}
else return 0;/CTRL+Z结束输入/
printf("Scores : ");/输入成绩/
for(j=0;j<SCORES;j++)
if(scanf("%d",spt->scores+j)!=1)
break;
if(j==0)/一个成绩也没有输入/
{
free(spt->name);/释放存储姓名的空间/
return 0;
}
for(;j<SCORES;j++)/少数未输入的成绩用0分代替/
spt->scores[j]=0;
return 1;
}
/[函数]输出一个学生信息的函数/
int writeastu(struct std_type spt)
{
int i;
printf("Number : %s\n",spt->no);/输出学号/
printf("Name : %s\n",spt->name);/输出姓名/
printf("Scores : ");/输出成绩/
for(i=0;i<SCORES;i++)
printf("%4d",spt->scores[i]);
printf("\n\n");
}
main()
{
int n,i,j,t;
clrscr();
for(n=0;readastu(students+n);n++);/用冒泡法对学生信息数组排序/
for(i=0;i<n;i++)
{
order[i]=i;/预置第i个输入的学生/
for(t=0,j=0;j<SCORES;j++)/求第i个学生的总分/
t+=students[i]scores[j];
total[i]=t;
}/冒泡排序/
for(i=0;i<n-1;i++)/共扫视n-1遍/
for(j=0;j<n-1-i;j++)
if(total[order[j]]<total[order[j+1]])
{/交换名次/
t=order[j];
order[j]=order[j+1];
order[j+1]=t;
}
for(j=0;j<n;j++)/输出/
writeastu(students+order[j]);
printf("\n Press any key to quit\n");
getch();
}
以上就是关于C语言 编姓名全部的内容,包括:C语言 编姓名、利用c语言编制输入姓名后按字母顺序排列、如何用C语言中的for语句编写程序:当输入正确的姓名时进入下一步,否则继续输入。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)