C语言程序8八案例.docx
《C语言程序8八案例.docx》由会员分享,可在线阅读,更多相关《C语言程序8八案例.docx(12页珍藏版)》请在冰豆网上搜索。
![C语言程序8八案例.docx](https://file1.bdocx.com/fileroot1/2023-3/29/39394d1b-ccdc-499f-aee3-6da3c5676e85/39394d1b-ccdc-499f-aee3-6da3c5676e851.gif)
C语言程序8八案例
1:
学生成绩管理程序:
#include
#include
#include
typedefstructNode
{
charname[20];
intscore[3];
structNode*next;
}stu;
stu*creat(intn)
{
stu*s,*p,*h;
inti;
if((h=(stu*)malloc(sizeof(stu)))==NULL)
{
printf("不能分配空间");
exit(0);
}
h->name[0]='\0';
h->next=NULL;
p=h;
for(i=0;i{
if((s=(stu*)malloc(sizeof(stu)))==NULL)
{
printf("不能分配空间:
");
exit(0);
}
p->next=s;
printf("请输入第%d个人的姓名:
",i+1);
scanf("%s",s->name);
printf("请输入第%d个人的成绩:
",i+1);
scanf("%s",s->score);
s->next=NULL;
p=s;
}
return(h);
}
main()
{
intnumber;
stu*head;
printf("请输入人的个数:
");
scanf("%d",&number);
head=creat(number);
}
2:
学生成绩编译系统和查询。
#include
#include
#include
#include
typedefstructnode
{
charname[20];
intscore[3];
structnode*next;
}stu;
stu*creat(intn)
{
stu*s,*p,*h;
inti;
if((h=(stu*)malloc(sizeof(stu)))==NULL)
{
printf("不能分配空间:
");
exit(0);
}
h->name[0]='\0';
h->next=NULL;
p=h;
for(i=0;i{
if((s=(stu*)malloc(sizeof(stu)))==NULL)
{
printf("不能分配空间:
");
exit(0);
}
p->next=s;
printf("请输入第%d个人的姓名:
",i+1);
scanf("%s",s->name);
printf("请输入第%d个人的成绩:
",i+1);
scanf("%s",s->score);
s->next=NULL;
p=s;
}
return(h);
}
stu*search(stu*h,char*y)
{
stu*p;
char*m;
p=h->next;
while(p!
=NULL)
{
m=p->name;
if(strcmp(m,y)==0)
return(p);
else
p=p->next;
}
if(p==NULL)
printf("没有找到该数据:
");
return(p);
}
main()
{
intnumber;
stu*head,*searchpoint;
charfullname[20];
printf("请输入人的个数:
");
scanf("%d",&number);
head=creat(number);
printf("请输入你有查找的人的姓名:
");
scanf("%s",&fullname);
searchpoint=search(head,fullname);
printf("要查找人的姓名和成绩为:
name:
%4s,score:
%4s\n",searchpoint->name,searchpoint->score);
}
3:
输入排序:
#include
#include
main()
{
inti,j;
inttemp;
inta[10];
printf("请输入十个数:
\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("你输入的数为:
\n");
for(i=0;i<10;i++)
printf("%4d",a[i]);
for(i=0;i<9;i++)
{
for(j=i;j<10;j++)
if(a[i]>a[j])
{temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
printf("输入后的数列为;\n");
for(i=0;i<10;i++)
printf("%5d\n",a[i]);
}
4:
输入9个数,按矩阵输出并输出没行的最大数
#include
#include
voidmain()
{
intb[3],max,i,j;
inta[3][3];
printf("请输入9个数:
\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
printf("\n");
printf("你输入的数为:
\n");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%3d",a[i][j]);
printf("\n");
}
for(i=0;i<3;i++)
{max=a[i][0];
for(j=1;j<3;j++)
if(a[i][j]>max)
{max=a[i][j];
b[i]=max;
}
}
printf("每行最大数为:
\n");
for(i=0;i<3;i++)
printf("%5d",b[i]);
printf("\n");
}
5:
输入两个字符串,并比较它们的大小且输出每个字符串的长度
#include
#include
#include
main()
{
chara[20],b[20];
inti,n,m;
printf("请输入A的字符串\n");
gets(a);
printf("请输入B的字符串\n");
gets(b);
i=strcmp(a,b);
if(i==0)printf("a>b\n");
if(i>0)
printf("a>b\n");
if(i<0)
printf("a
n=strlen(a);
m=strlen(b);
printf("a=%2db=%2d\n",n,m);
}
6:
请输入10个人的学号,数学成绩,英语成绩,程序设计成绩,还算出他们的平均分。
并且浏览他们的成绩和平均成绩,还通过查询它们的学号显示他们的成绩。
#include
#include
#include
#defineN10
#defineM3
voidmain()
{
charnum[N][10];
charfind[10];
intscore[N][M+1];
inti,j,sum=0,ave=0;
for(i=0;i{
printf("请输入第%d个人的学号:
",i+1);
scanf("%s",num[i]);
for(j=0;num[i][j]!
='\0';j++)
if(num[i][j]<'0'||num[i][j]>'9')
{
printf("你输入的学号有误,请输入(1-9)的数\n");
i--;
break;
}
}
for(i=0;i{ave=0;
printf("请输入第%s个人的成绩:
",num[i]);
for(j=0;j{
scanf("%3d",&score[i][j]);
sum=sum+num[i][j];
}
ave=sum/M;
score[i][M]=ave;
sum=0;
}
printf("学生的各科成绩:
\n");
printf("nummathenglishprogave");
printf("------------------------------------------------\n");
for(i=0;i{
printf("%s%d%d%d%d\n",
num[i],score[i][0],score[i][1],score[i][2],score[i][M]);
}
printf("查询学生信息\n");
printf("请输入你要查询的人的学号:
");
scanf("%s",find);
for(i=0;i{
if(strcmp(num[i],find)==0)
break;
}
if(i{
printf("nummathenglishprogave\n");
printf("-----------------------------------------------\n");
printf("%s%d%d%d%d\n",
num[i],score[i][0],score[i][1],score[i][2],score[i][3]);
}
else
printf("can'tfindtherecrod\n");
}
7:
计算一元二次方程的解
#include
#include
#include
main()
{
inta,b,c;
floatp,x1,x2;
printf("球一元二次方程的根\n");
printf("请输入a,b,c,的值\n");
scanf("%d,%d,%d",&a,&b,&c);
p=b*b-4*a*c;
if(p<0)
printf("方程无解\n");
elseif(p==0)
{
x1=-b/(2*a);
printf("%dx^2+%dx+%d=0",a,b,c);
printf("方程有一个解为:
x1=%f\n",x1);
}
else
x1=-b+sqrt(p)/(2*a);
x2=(-b-sqrt(p))/(2*a);
printf("方程%dx^2+%dx+%d=0的解为:
x1=%f,x2=%f\n",a,b,c,x1,x2);
}
8:
编写一个系统登录程序,设置登录名和密码(密码设置最多循环3次)
#include
#include
#include
main()
{
charuse[20];
inti,pw;
printf("用户名为zhangjun\n密码为123\n\n");
printf("用户登录程序\n");
printf("请输入用户名:
\n");
scanf("%s",use);
do
{
if(strcmp(use,"zhangjun")==0)
{
printf("请输入开机密码:
");
scanf("%d",&pw);
for(i=0;i<3;i++)//设置密码输入次数
{
if(pw==123)
{
printf("欢迎使用本程序:
\n");
break;
//while(pw==123)
//break;
}
else
{printf("密码错误,请从新输入:
\n");
scanf("%d",&pw);}
}break;
}
else
{printf("用户名错误请从新输入:
\n");
scanf("%s",use);}
}
while(use!
="zhangjun");
}