c语言必背100代码(c语言100行简单一点的代码)

2026-05-14 23:19:04 4

c语言必背100代码(c语言100行简单一点的代码)

其实c语言必背100代码的问题并不复杂,但是又很多的朋友都不太了解c语言100行简单一点的代码,因此呢,今天小编就来为大家分享c语言必背100代码的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

c语言100行简单一点的代码

登录幼儿园200个小朋友的数据:姓名、性别、年龄、身高、体重、出生日期,分别按年龄排序后输出。
#include《stdio.h》
#define N 200
struct child
{
char name;
char sex;
int age;
int height;
float weight;
struct {
int year;
int month;
int day;
}bdate;
}ch;
void input()
{
int i;
for(i=0;i《N;i++)
{
printf("\n请输入第%d名小朋友信息:\n",i+1);
printf("姓名:");
scanf("%s",ch.name);
printf("性别:");
scanf("%s",ch.sex);
printf("年龄:");
scanf("%d",&ch.age);
printf("身高:");
scanf("%d",&ch.height);
printf("体重:");
scanf("%f",&ch.weight);
printf("出生日期:");
scanf("%d-%d-%d",&ch.bdate.day);
}
}
void sort()
{
struct child ct;
int i,j;
for(i=0;i《N-1;i++)
for(j=0;j《N-i-1;j++)
if(ch.height)
{
ct=ch;
ch;
ch=ct;
}
}
void output()
{
int i;
printf("\n\t幼儿园小朋友一览(依身高排序)\n");
printf("===================================================\n");
printf(" 姓名 性别 年龄 身高 体重 出生日期 \n");
printf("===================================================\n");
for(i=0;i《N;i++)
printf(" %-8s %-2s %2d %d %3.1f %d.%d.%d\n",ch.bdate.day);
}
void main()
{
input();
sort();
output();
}

c语言经典100

您好,c语言经典100题:
【程序1】
题目:有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数
都是多少
1.程序分析:可填在百位,十位,个位的数字都是1,2,3,4.组成所有的排列后再去
掉不满足条件的排列.
2.程序源代码:
main()
{
int
i,j,k;
printf("\n");
for(i1;i《5;i++)
/*以下为三重循环*/
for(j1;j《5;j++)
for
(k1;k《5;k++)
{
if
(i!k&&i!j&&j!k)
/*确保i,j,k三位互不相同*/
printf("%d,%d,%d\n",i,j,k);
}
}
【程序2】
题目:企业发放的奖金根据利润提成.利润(i)低于或等于10万元时,奖金可提10%;利润高
于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提
成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于
40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于
100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数
1.程序分析:请利用数轴来分界,定位.注意定义时需把奖金定义成长整型.
2.程序源代码:
main()
{
long
int
i;
int
bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1100000*0.1;bonus2bonus1+100000*0.75;
bonus4bonus2+200000*0.5;
bonus6bonus4+200000*0.3;
bonus10bonus6+400000*0.15;
if(i《100000)
bonusi*0.1;
else
if(i《200000)
bonusbonus1+(i-100000)*0.075;
else
if(i《400000)
bonusbonus2+(i-200000)*0.05;
else
if(i《600000)
bonusbonus4+(i-400000)*0.03;
else
if(i《1000000)
bonusbonus6+(i-600000)*0.015;
else
bonusbonus10+(i-1000000)*0.01;
printf("bonus%d",bonus);
}
【程序3】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后
的结果满足如下条件,即是结果.请看具体分析:
2.程序源代码:
#include
"math.h"
main()
{
long
int
i,x,y,z;
for
(i1;i2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("it
is
the
%dth
day.",sum);}
【程序4】
题目:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
情况,闰年且输入月份大于3时需考虑多加一天。
2.程序源代码:
main()
{
int
day,month,year,sum,leap;
printf("\nplease
input
year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*先计算某月以前月份的总天数*/
{
case
1:sum0;break;
case
2:sum31;break;
case
3:sum59;break;
case
4:sum90;break;
case
5:sum120;break;
case
6:sum151;break;
case
7:sum181;break;
case
8:sum212;break;
case
9:sum243;break;
case
10:sum273;break;
case
11:sum304;break;
case
12:sum334;break;
default:printf("data
error");break;
}
sumsum+day;
/*再加上某天的天数*/
if(year%4000||(year%40&&year%100!0))/*判断是不是闰年*/
leap1;
else
leap0;
if(leap1&&month》2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It
is
the
%dth
day.",sum);}
【程序5】
题目:输入三个整数x,y,z,请把这三个数由小到大输出.
1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x》y则将x与y的值进行交换,
然后再用x与z进行比较,如果x》z则将x与z的值进行交换,这样能使x最小.
2.程序源代码:
main()
{
int
x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if
(x》y)
{tx;xy;yt;}
/*交换x,y的值*/
if(x》z)
{tz;zx;xt;}/*交换x,z的值*/
if(y》z)
{ty;yz;zt;}/*交换z,y的值*/
printf("small
to
big:
%d
%d
%d\n",x,y,z);
}
【程序6】
题目:用*号输出字母c的图案.
1.程序分析:可先用’*’号在纸上写出字母c,再分行输出.
2.程序源代码:
#include
"stdio.h"
main()
{
printf("hello
c-world!\n");
printf("
****\n");
printf("
*\n");
printf("
*
\n");
printf("
****\n");
}
【程序7】
题目:输出特殊图案,请在c环境中运行,看一看,very
beautiful!
1.程序分析:字符共有256个.不同字符,图形不一样.
2.程序源代码:
#include
"stdio.h"
main()
{
char
a176,b219;
printf("%c%c%c%c%c\n",b,a,a,a,b);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",a,a,b,a,a);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",b,a,a,a,b);}
【程序8】
题目:输出9*9口诀.
1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列.
2.程序源代码:
#include
"stdio.h"
main()
{
int
i,j,result;
printf("\n");
for
(i1;i《10;i++)
{
for(j1;j《10;j++)
{
resulti*j;
printf("%d*%d%-3d",i,j,result);/*-3d表示左对齐,占3位*/
}
printf("\n");/*每一行后换行*/
}
}
【程序9】
题目:要求输出国际象棋棋盘.
1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格.
2.程序源代码:
#include
"stdio.h"
main()
{
int
i,j;
for(i0;i《8;i++)
{
for(j0;j《8;j++)
if((i+j)%20)
printf("%c%c",219,219);
else
printf("
");
printf("\n");
}
}
【程序10】
题目:打印楼梯,同时在楼梯上方打印两个笑脸.
1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数.
2.程序源代码:
#include
"stdio.h"
main()
{
int
i,j;
printf("\1\1\n");/*输出两个笑脸*/
for(i1;i《11;i++)
{
for(j1;j《i;j++)
printf("%c%c",219,219);
printf("\n");
}
}
【程序11】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少
1.程序分析:
兔子的规律为数列1,1,2,3,5,8,13,21....
2.程序源代码:
main()
{
long
f1,f2;
int
i;
f1f21;
for(i1;i《20;i++)
{
printf("%12ld
%12ld",f1,f2);
if(i%20)
printf("\n");/*控制输出,每行四个*/
f1f1+f2;
/*前两个月加起来赋值给第三个月*/
f2f1+f2;
/*前两个月加起来赋值给第三个月*/
}
}
【程序12】
题目:判断101-200之间有多少个素数,并输出所有素数.
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数.
2.程序源代码:
#include
"math.h"
main()
{
int
m,i,k,h0,leap1;
printf("\n");
for(m101;m《200;m++)
{
ksqrt(m+1);
for(i2;i《k;i++)
if(m%i0)
{leap0;break;}
if(leap)
{printf("%-4d",m);h++;
if(h%100)
printf("\n");
}
leap1;
}
printf("\nthe
total
is
%d",h);
}

c语言经典100题,要过程

您好,c语言经典100题:
【程序1】
题目:有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数
都是多少
1.程序分析:可填在百位,十位,个位的数字都是1,2,3,4.组成所有的排列后再去
掉不满足条件的排列.
2.程序源代码:
main()
{
int
i,j,k;
printf("\n");
for(i1;i《5;i++)
/*以下为三重循环*/
for(j1;j《5;j++)
for
(k1;k《5;k++)
{
if
(i!k&&i!j&&j!k)
/*确保i,j,k三位互不相同*/
printf("%d,%d,%d\n",i,j,k);
}
}
【程序2】
题目:企业发放的奖金根据利润提成.利润(i)低于或等于10万元时,奖金可提10%;利润高
于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提
成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于
40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于
100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数
1.程序分析:请利用数轴来分界,定位.注意定义时需把奖金定义成长整型.
2.程序源代码:
main()
{
long
int
i;
int
bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1100000*0.1;bonus2bonus1+100000*0.75;
bonus4bonus2+200000*0.5;
bonus6bonus4+200000*0.3;
bonus10bonus6+400000*0.15;
if(i《100000)
bonusi*0.1;
else
if(i《200000)
bonusbonus1+(i-100000)*0.075;
else
if(i《400000)
bonusbonus2+(i-200000)*0.05;
else
if(i《600000)
bonusbonus4+(i-400000)*0.03;
else
if(i《1000000)
bonusbonus6+(i-600000)*0.015;
else
bonusbonus10+(i-1000000)*0.01;
printf("bonus%d",bonus);
}
【程序3】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后
的结果满足如下条件,即是结果.请看具体分析:
2.程序源代码:
#include
"math.h"
main()
{
long
int
i,x,y,z;
for
(i1;i2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("it
is
the
%dth
day.",sum);}
【程序4】
题目:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
情况,闰年且输入月份大于3时需考虑多加一天。
2.程序源代码:
main()
{
int
day,month,year,sum,leap;
printf("\nplease
input
year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*先计算某月以前月份的总天数*/
{
case
1:sum0;break;
case
2:sum31;break;
case
3:sum59;break;
case
4:sum90;break;
case
5:sum120;break;
case
6:sum151;break;
case
7:sum181;break;
case
8:sum212;break;
case
9:sum243;break;
case
10:sum273;break;
case
11:sum304;break;
case
12:sum334;break;
default:printf("data
error");break;
}
sumsum+day;
/*再加上某天的天数*/
if(year%4000||(year%40&&year%100!0))/*判断是不是闰年*/
leap1;
else
leap0;
if(leap1&&month》2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It
is
the
%dth
day.",sum);}
【程序5】
题目:输入三个整数x,y,z,请把这三个数由小到大输出.
1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x》y则将x与y的值进行交换,
然后再用x与z进行比较,如果x》z则将x与z的值进行交换,这样能使x最小.
2.程序源代码:
main()
{
int
x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if
(x》y)
{tx;xy;yt;}
/*交换x,y的值*/
if(x》z)
{tz;zx;xt;}/*交换x,z的值*/
if(y》z)
{ty;yz;zt;}/*交换z,y的值*/
printf("small
to
big:
%d
%d
%d\n",x,y,z);
}
【程序6】
题目:用*号输出字母c的图案.
1.程序分析:可先用’*’号在纸上写出字母c,再分行输出.
2.程序源代码:
#include
"stdio.h"
main()
{
printf("hello
c-world!\n");
printf("
****\n");
printf("
*\n");
printf("
*
\n");
printf("
****\n");
}
【程序7】
题目:输出特殊图案,请在c环境中运行,看一看,very
beautiful!
1.程序分析:字符共有256个.不同字符,图形不一样.
2.程序源代码:
#include
"stdio.h"
main()
{
char
a176,b219;
printf("%c%c%c%c%c\n",b,a,a,a,b);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",a,a,b,a,a);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",b,a,a,a,b);}
【程序8】
题目:输出9*9口诀.
1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列.
2.程序源代码:
#include
"stdio.h"
main()
{
int
i,j,result;
printf("\n");
for
(i1;i《10;i++)
{
for(j1;j《10;j++)
{
resulti*j;
printf("%d*%d%-3d",i,j,result);/*-3d表示左对齐,占3位*/
}
printf("\n");/*每一行后换行*/
}
}
【程序9】
题目:要求输出国际象棋棋盘.
1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格.
2.程序源代码:
#include
"stdio.h"
main()
{
int
i,j;
for(i0;i《8;i++)
{
for(j0;j《8;j++)
if((i+j)%20)
printf("%c%c",219,219);
else
printf("
");
printf("\n");
}
}
【程序10】
题目:打印楼梯,同时在楼梯上方打印两个笑脸.
1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数.
2.程序源代码:
#include
"stdio.h"
main()
{
int
i,j;
printf("\1\1\n");/*输出两个笑脸*/
for(i1;i《11;i++)
{
for(j1;j《i;j++)
printf("%c%c",219,219);
printf("\n");
}
}
【程序11】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少
1.程序分析:
兔子的规律为数列1,1,2,3,5,8,13,21....
2.程序源代码:
main()
{
long
f1,f2;
int
i;
f1f21;
for(i1;i《20;i++)
{
printf("%12ld
%12ld",f1,f2);
if(i%20)
printf("\n");/*控制输出,每行四个*/
f1f1+f2;
/*前两个月加起来赋值给第三个月*/
f2f1+f2;
/*前两个月加起来赋值给第三个月*/
}
}
【程序12】
题目:判断101-200之间有多少个素数,并输出所有素数.
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数.
2.程序源代码:
#include
"math.h"
main()
{
int
m,i,k,h0,leap1;
printf("\n");
for(m101;m《200;m++)
{
ksqrt(m+1);
for(i2;i《k;i++)
if(m%i0)
{leap0;break;}
if(leap)
{printf("%-4d",m);h++;
if(h%100)
printf("\n");
}
leap1;
}
printf("\nthe
total
is
%d",h);
}

c语言必背代码32个单词

数据类型关键字(8个)
int 、short 、long、signed、unsigned、char 、float,、double
程序控制关键字(10个)
if 、else、switch、case、default、break、do 、while、 for、continue

扩展资料

  函数及数据存储关键字(6个)

  void 、return、auto、register、static、 extern

  构造数据类型关键字(5个)

  struct、union、enum、typedef、sizeof

  其它3个不常用(3个)

  goto、const、 volatile

  c语言中有32个单词,针对c有固定含义与用法称为关键字。

跪求100行左右的c语言简单代码,大一水平就行,什么类型都可以

//学生成绩管理系统C代码
/*头文件*/
#include 《stdio.h》
#include《dos.h》
#include《stdlib.h》 /*其它说明*/
#include《string.h》 /*字符串函数*/
#include《mem.h》 /*内存操作函数*/
#include《ctype.h》 /*字符操作函数*/
#include《alloc.h》 /*动态地址分配函数*/
#define LEN sizeof(STUDENT)
typedef struct stu /*定义结构体数组用于缓存数据*/
{
char num;
char name;
int score;
int sum;
float average;
int order;
struct stu *next;
}STUDENT;
/*函数原型*/
STUDENT *init(); /*初始化函数*/
int menu_select(); /*菜单函数*/
STUDENT *create(); /*创建链表*/
void print(STUDENT *head); /* 显示全部记录*/
void search(STUDENT *head); /*查找记录*/
STUDENT *delete(STUDENT *head); /*删除记录*/
STUDENT *sort(STUDENT *head); /*排序*/
STUDENT *insert(STUDENT *head,STUDENT *newnode); /*插入记录*/
void save(STUDENT *head); /*保存文件*/
STUDENT *load(); /*读文件*/
/*主函数界面*/
main()
{
STUDENT *head,newnode;
head=init(); /*链表初始化,使head的值为NULL*/
for(;;) /*循环无限次*/
{
switch(menu_select()) 
{
case 1:head=create();break;
case 2:print(head);break;
case 3:search(head);break;
case 4:head=delete(head);break;
case 5:head=sort(head);break;
case 6:head=insert(head,&newnode);break; /*&newnode表示返回地址*/
case 7:save(head);break;
case 8:head=load(); break;
case 9:exit(0); /*如菜单返回值为9则程序结束*/
}
}
}
/*初始化函数*/
STUDENT *init()
{
return NULL; /*返回空指针*/
}
/*菜单选择函数*/
menu_select()
{
int n;
struct date d; /*定义时间结构体*/
getdate(&d); /*读取系统日期并把它放到结构体d中*/
printf("press any key to enter the menu......"); /*按任一键进入主菜单*/
getch(); /*从键盘读取一个字符,但不显示于屏幕*/
clrscr(); /*清屏*/
printf("********************************************************************************\n");
printf("\t\t Welcome to\n");
printf("\n\t\t The student score manage system\n");
printf("*************************************MENU***************************************\n");
printf("\t\t\t1. Enter the record\n"); /*输入学生成绩记录*/
printf("\t\t\t2. Print the record\n"); /*显示*/
printf("\t\t\t3. Search record on name\n"); /*寻找*/
printf("\t\t\t4. Delete a record\n"); /*删除*/
printf("\t\t\t5. Sort to make new a file\n"); /*排序*/
printf("\t\t\t6. Insert record to list\n"); /*插入*/
printf("\t\t\t7. Save the file\n"); /*保存*/
printf("\t\t\t8. Load the file\n"); /*读取*/
printf("\t\t\t9. Quit\n"); /*退出*/
printf("\n\t\t Made by Hu Haihong.\n");
printf("********************************************************************************\n");
printf("\t\t\t\t%d\\%d\\%d\n",d.da_year,d.da_mon,d.da_day); /*显示当前系统日期*/
do{
 printf("\n\t\t\tEnter your choice(1~9):"); 
 scanf("%d",&n);
 }while(n《1||n》9); /*如果选择项不在1~9之间则重输*/
 return(n); /*返回选择项,主函数根据该数调用相应的函数*/
}
/*输入函数*/
STUDENT *create()
{
int i,s;
STUDENT *head=NULL,*p; /* 定义函数.此函数带回一个指向链表头的指针*/
clrscr();
for(;;)
 {p=(STUDENT *)malloc(LEN); /*开辟一个新的单元*/
 if(!p) /*如果指针p为空*/
 {printf("\nOut of memory."); /*输出内存溢出*/
 return (head); /*返回头指针,下同*/
 }
 printf("Enter the num(0:list end):"); 
 scanf("%s",p-》num);
 if(p-》num==’0’) break; /*如果学号首字符为0则结束输入*/
 printf("Enter the name:");
 scanf("%s",p-》name);
 printf("Please enter the %d scores\n",3); /*提示开始输入成绩*/
 s=0; /*计算每个学生的总分,初值为0*/
 for(i=0;i《3;i++) /*3门课程循环3次*/
 {
 do{
 printf("score%d:",i+1);
 scanf("%d",&p-》score);
 if(p-》score》100) /*确保成绩在0~100之间*/
 printf("Data error,please enter again.\n");
 }while(p-》score》100);
 s=s+p-》score; /*累加各门成绩*/
 }
 p-》sum=s; /*将总分保存*/
 p-》average=(float)s/3; /*先用强制类型转换将s转换成float型,再求平均值*/
 p-》order=0; /*未排序前此值为0*/
 p-》next=head; /*将头结点做为新输入结点的后继结点*/
 head=p; /*新输入结点为新的头结点*/
 }
 return(head); 
}
/* 显示全部记录函数*/
void print(STUDENT *head)
{
int i=0; /* 统计记录条数*/
STUDENT *p; /*移动指针*/
clrscr();
p=head; /*初值为头指针*/
printf("\n************************************STUDENT************************************\n");
printf("-------------------------------------------------------------------------------\n");
printf("| Rec | Num | Name | Sc1 | Sc2 | Sc3 | Sum | Ave | Order |\n");
printf("-------------------------------------------------------------------------------\n");
while(p!=NULL)
 {
 i++;
 printf("| %3d | %4s | %-4s | %3d | %3d | %3d | %3d | %4.2f | %-5d|\n", 
 i, p-》num,p-》name,p-》score,p-》sum,p-》average,p-》order);
 p=p-》next;
 }
printf("-------------------------------------------------------------------------------\n");
printf("**************************************END**************************************\n");
}
/*查找记录函数*/
void search(STUDENT *head)
{
STUDENT *p; /* 移动指针*/
char s; /*存放姓名用的字符数组*/
clrscr();
printf("Please enter name for searching.\n");
scanf("%s",s);
p=head; /*将头指针赋给p*/
while(strcmp(p-》name,s) && p != NULL) /*当记录的姓名不是要找的,或指针不为空时*/
 p=p-》next; /*移动指针,指向下一结点*/
 if(p!=NULL) /*如果指针不为空*/
 {printf("\n*************************************FOUND************************************\n");
 printf("-------------------------------------------------------------------------------\n");
 printf("| Num | Name | sc1 | sc2 | sc3 | Sum | Ave | Order |\n");
 printf("-------------------------------------------------------------------------------\n");
 printf("| %4s | %4s | %3d | %3d | %3d | %3d | %4.2f | %-5d|\n",
 p-》num,p-》name,p-》score,p-》sum,p-》average,p-》order);
 printf("-------------------------------------------------------------------------------\n");
 printf("***************************************END**************************************\n");
 }
 else
 printf("\nThere is no num %s student on the list.\n",s); /*显示没有该学生*/
}
/*删除记录函数*/
STUDENT *delete(STUDENT *head)
{int n;
STUDENT *p1,*p2; /*p1为查找到要删除的结点指针,p2为其前驱指针*/
char c,s用来存放学号,c用来输入字母*/
clrscr();
printf("Please enter the deleted num: ");
scanf("%s",s);
p1=p2=head; /*给p1和p2赋初值头指针*/
while(strcmp(p1-》num,s) && p1 != NULL) /*当记录的学号不是要找的,或指针不为空时*/
 {p2=p1; /*将p1指针值赋给p2作为p1的前驱指针*/
 p1=p1-》next; /*将p1指针指向下一条记录*/
 }
if(strcmp(p1-》num,s)==0) /*学号找到了*/
 {printf("**************************************FOUND************************************\n");
 printf("-------------------------------------------------------------------------------\n");
 printf("| Num | Name | sc1 | sc2 | sc3 | Sum | Ave | Order |\n");
 printf("-------------------------------------------------------------------------------\n");
 printf("| %4s | %4s | %3d | %3d | %3d | %3d | %4.2f | %-5d|\n",
 p1-》num,p1-》name,p1-》score,p1-》sum,p1-》average,p1-》order);
 printf("-------------------------------------------------------------------------------\n");
 printf("***************************************END**************************************\n");
 printf("Are you sure to delete the student Y/N ?"); /*提示是否要删除,输入Y删除,N则退出*/
 for(;;)
 {scanf("%c",&c);
 if(c==’n’||c==’N’) break; /*如果不删除,则跳出本循环*/
 if(c==’y’||c==’Y’)
 {
 if(p1==head) /*若p1==head,说明被删结点是首结点*/
 head=p1-》next; /*把第二个结点地址赋予head*/
 else
 p2-》next=p1-》next; /*否则将一下结点地址赋给前一结点地址*/
 n=n-1;
 printf("\nNum %s student have been deleted.\n",s);
 printf("Don’t forget to save.\n");break; /*删除后就跳出循环*/
 }
 }
 }
 else
 printf("\nThere is no num %s student on the list.\n",s); /*找不到该结点*/
return(head);
}
/*排序函数*/
STUDENT *sort(STUDENT *head)
{int i=0; /*保存名次*/
STUDENT *p1,*p2,*t,*temp; /*定义临时指针*/
temp=head-》next; /*将原表的头指针所指的下一个结点作头指针*/
head-》next=NULL; /*第一个结点为新表的头结点*/
while(temp!=NULL) /*当原表不为空时,进行排序*/
 {
 t=temp; /*取原表的头结点*/
 temp=temp-》next; /*原表头结点指针后移*/
 p1=head; /*设定移动指针p1,从头指针开始*/
 p2=head; /*设定移动指针p2做为p1的前驱,初值为头指针*/
 while(t-》average《p1-》average&&p1!=NULL) /*作成绩平均分比较*/
 {
 p2=p1; /*待排序点值小,则新表指针后移*/
 p1=p1-》next;
 }
 if(p1==p2) /*p1==p2,说明待排序点值大,应排在首位*/
 {
 t-》next=p1; /*待排序点的后继为p*/
 head=t; /*新头结点为待排序点*/
 }
 else /*待排序点应插入在中间某个位置p2和p1之间,如p为空则是尾部*/
 {
 t-》next=p1; /*t的后继是p1*/
 p2-》next=t; /*p2的后继是t*/
 }
 }
p1=head; /*已排好序的头指针赋给p1,准备填写名次*/
while(p1!=NULL) /*当p1不为空时,进行下列操作*/
 {
 i++; /*结点序号*/
 p1-》order=i; /*将结点序号赋值给名次*/
 p1=p1-》next; /*指针后移*/
 }
printf("Sorting is sucessful.\n"); /*排序成功*/
return (head);
}
/*插入记录函数*/
STUDENT *insert(STUDENT *head,STUDENT *newnode)
{STUDENT *p0,*p1,*p2;
int n,sum1,i;
p1=head; /*使p1指向第一个结点*/
p0=newnode; /*p0指向要插入的结点*/
printf("\nPlease enter a newnode record.\n"); /*提示输入记录信息*/
printf("Enter the num:");
scanf("%s",newnode-》num);
printf("Enter the name:");
scanf("%s",newnode-》name);
printf("Please enter the %d scores.\n",3);
sum1=0; /*保存新记录的总分,初值为0*/
for(i=0;i《3;i++)
 {
 do{
 printf("score%d:",i+1);
 scanf("%d",&newnode-》score);
 if(newnode-》score《0)
 printf("Data error,please enter again.\n");
 }while(newnode-》score《0);
 sum1=sum1+newnode-》score; /*累加各门成绩*/
 }
newnode-》sum=sum1; /*将总分存入新记录中*/
newnode-》average=(float)sum1/3;
newnode-》order=0;
if(head==NULL) /*原来的链表是空表*/
 {head=p0;p0-》next=NULL;} /*使p0指向的结点作为头结点*/
else
 {while((p0-》average《p1-》average)&&(p1-》next!=NULL))
 {p2=p1; /*使p2指向刚才p1指向的结点*/
 p1=p1-》next; /*p1后移一个结点*/
 }
 if(p0-》average》=p1-》average)
 {if(head==p1)head=p0; /*插到原来第一个结点之前*/
 else p2-》next=p0; /*插到p2指向的结点之后*/
 p0-》next=p1;}
 else
 {p1-》next=p0;p0-》next=NULL;} /*插到最后的结点之后*/
 }
n=n+1; /*结点数加1*/
head=sort(head); /*调用排序的函数,将学生成绩重新排序*/
printf("\nStudent %s have been inserted.\n",newnode-》name); 
printf("Don’t forget to save the newnode file.\n");
return(head);
}
/*保存数据到文件函数*/
void save(STUDENT *head)
{FILE *fp; /*定义指向文件的指针*/
STUDENT *p; /* 定义移动指针*/
char outfile;
printf("Enter outfile name,for example c:\\score\n");
scanf("%s",outfile);
if((fp=fopen(outfile,"wb"))==NULL) /*为输出打开一个二进制文件,为只写方式*/
 {
 printf("Cannot open the file\n");
 return; /*若打不开则返回菜单*/
 }
printf("\nSaving the file......\n");
p=head; /*移动指针从头指针开始*/
while(p!=NULL) /*如p不为空*/
 {
 fwrite(p,LEN,1,fp); /*写入一条记录*/
 p=p-》next; /*指针后移*/
 }
fclose(fp); /*关闭文件*/
printf("Save the file successfully!\n");
}
/* 从文件读数据函数*/
STUDENT *load()
{STUDENT *p1,*p2,*head=NULL; /*定义记录指针变量*/
FILE *fp; /* 定义指向文件的指针*/
char infile;
printf("Enter infile name,for example c:\\score\n");
scanf("%s",infile);
if((fp=fopen(infile,"rb"))==NULL) /*打开一个二进制文件,为只读方式*/
 {
 printf("Can not open the file.\n");
 return(head);
 }
printf("\nLoading the file!\n");
p1=(STUDENT *)malloc(LEN); /*开辟一个新单元*/
if(!p1)
 {
 printf("Out of memory!\n");
 return(head);
 }
head=p1; /*申请到空间,将其作为头指针*/
while(!feof(fp)) /*循环读数据直到文件尾结束*/
 {
 if(fread(p1,LEN,1,fp)!=1) break; /*如果没读到数据,跳出循环*/
 p1-》next=(STUDENT *)malloc(LEN); /*为下一个结点开辟空间*/
 if(!p1-》next)
 {
 printf("Out of memory!\n");
 return (head);
 }
p2=p1; /*使p2指向刚才p1指向的结点*/
p1=p1-》next; /*指针后移,新读入数据链到当前表尾*/
 }
p2-》next=NULL; /*最后一个结点的后继指针为空*/
fclose(fp);
printf("You have success to read data from the file!\n");
return (head);
}

关于c语言必背100代码到此分享完毕,希望能帮助到您。

c语言必背100代码(c语言100行简单一点的代码)

本文编辑:admin

本文相关文章:


c语言新手入门代码(c语言必背100代码有哪些)

c语言新手入门代码(c语言必背100代码有哪些)

各位老铁们,大家好,今天由我来为大家分享c语言新手入门代码,以及c语言必背100代码有哪些的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录c语言必背

2026年5月14日 22:07

更多文章:


兰州网站建设制作服务需要哪些基本功能

兰州网站建设制作服务需要哪些基本功能

你有没有想过,做网站的时候到底需要哪些基本功能?说实话,这确实是个让人头疼的问题,尤其是对新手来说。别急,我这就给你好好说道说道。 一、网站的基本功能有哪些? 做网站可不是简单的堆砌内容,它需要一些核心功能来支撑。我常用的功能清单是这样的:

2026年6月27日 17:42

成都室内装饰设计(成都口碑好的装饰公司)

成都室内装饰设计(成都口碑好的装饰公司)

各位老铁们好,相信很多人对成都室内装饰设计都不是特别的了解,因此呢,今天就来为大家分享下关于成都室内装饰设计以及成都口碑好的装饰公司的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录成都口碑好的装饰公司成都写字楼装

2026年5月10日 09:22

餐饮品牌设计(餐饮品牌设计包括什么内容)

餐饮品牌设计(餐饮品牌设计包括什么内容)

本篇文章给大家谈谈餐饮品牌设计,以及餐饮品牌设计包括什么内容对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录餐饮品牌设计包括什么内容餐饮品牌

2026年4月20日 09:41

烟台互联网公司有哪些(烟台的软件公司有哪些)

烟台互联网公司有哪些(烟台的软件公司有哪些)

其实烟台互联网公司有哪些的问题并不复杂,但是又很多的朋友都不太了解烟台的软件公司有哪些,因此呢,今天小编就来为大家分享烟台互联网公司有哪些的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录烟台的软件公司有哪些烟台趣

2026年5月1日 09:01

新沂市seo优化推广哪家好,如何选对服务商

新沂市seo优化推广哪家好,如何选对服务商

新沂市seo优化推广哪家好,如何选对服务商 最近不少朋友问起,在新沂市做网站seo优化推广,到底哪家公司靠谱?说实话,这个问题挺复杂的,因为市面上服务商五花八门,质量参差不齐。但别担心,今天我就结合自己的经验,给大家好好聊聊这个话题,希望能

2026年6月23日 17:45

会员管理系统app(手机怎么弄会员卡系统)

会员管理系统app(手机怎么弄会员卡系统)

“会员管理系统app”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看会员管理系统app(手机怎么弄会员卡系统)!本文目录手机怎么弄会员卡系统求免费版会员积分管理软件,谢谢!什么餐饮会员管理系统快速方便会员管理系统哪种好用_哪

2026年4月20日 21:22

厦门关键词的优化技巧:如何选择合适的长尾词?

厦门关键词的优化技巧:如何选择合适的长尾词?

嘿,你有没有想过,在百度搜索"厦门"相关内容时,什么样的长尾词最能帮你吸引流量?说实话,我之前也踩过不少坑,但慢慢摸索出来一些门道。今天就来跟你聊聊,怎么选对长尾词,让你的网站在新站阶段也能脱颖而出。 一、长尾词的选择技巧 长尾词虽然搜索量

2026年6月10日 12:21

基础教育培训网(河北省基础教师教育网的培训后台怎么填加教师信息)

基础教育培训网(河北省基础教师教育网的培训后台怎么填加教师信息)

今天给各位分享河北省基础教师教育网的培训后台怎么填加教师信息的知识,其中也会对河北省基础教师教育网的培训后台怎么填加教师信息进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录河北省基础教师教育网的培训后台怎么填加

2026年5月10日 17:25

重庆五号线金建站(重庆轻轨5号线有哪些站点)

重庆五号线金建站(重庆轻轨5号线有哪些站点)

这篇文章给大家聊聊关于重庆五号线金建站,以及重庆轻轨5号线有哪些站点对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录重庆轻轨5号线有哪些站点重庆五号线地铁站线路站点重庆地铁五号线单侧有几对门重庆江津区什么时候才能开通地铁从重庆

2026年4月15日 15:59

常州本地网站建设介绍:个人网站如何选对建设服务商

常州本地网站建设介绍:个人网站如何选对建设服务商

嘿,朋友,你想在常州做个个人网站,但又不知道该找谁?这确实是个让人头疼的问题,毕竟现在市面上的网站建设公司五花八门。别急,今天我就来跟你聊聊,在常州做个人网站,到底该选哪家服务商比较好。 一、为什么要在常州做网站? 说实话,选择本地服务商有

2026年6月20日 00:24

国内网站搭建(网站搭建需要什么)

国内网站搭建(网站搭建需要什么)

大家好,国内网站搭建相信很多的网友都不是很明白,包括网站搭建需要什么也是一样,不过没有关系,接下来就来为大家分享关于国内网站搭建和网站搭建需要什么的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目录网站搭建需要什么怎

2026年5月10日 01:03

建设六马路小学网站最新消息是什么?

建设六马路小学网站最新消息是什么?

你有没有想过,建设六马路小学网站最近有什么新动态?说实话,作为家长,关注学校的官方信息特别重要,毕竟关系到孩子的教育嘛!今天咱们就来聊聊这个话题。 一、为什么要关注建设六马路小学网站? 建设六马路小学网站是学校官方发布信息的主要平台,这里能

2026年5月22日 04:06

整合营销沟通(整合营销沟通的特点是由外向内发展,其出发点是消费者或顾客对还是错)

整合营销沟通(整合营销沟通的特点是由外向内发展,其出发点是消费者或顾客对还是错)

大家好,整合营销沟通相信很多的网友都不是很明白,包括整合营销沟通的特点是由外向内发展,其出发点是消费者或顾客对还是错也是一样,不过没有关系,接下来就来为大家分享关于整合营销沟通和整合营销沟通的特点是由外向内发展,其出发点是消费者或顾客对还是

2026年4月16日 11:16

学院官网seo优化建议,新站如何提升搜索排名?

学院官网seo优化建议,新站如何提升搜索排名?

你有没有想过,新建立的学院官网怎么才能在百度搜索中脱颖而出?说实话,新站优化SEO确实有点难,但只要方法对,效果绝对不差!今天我就跟你聊聊,新站如何通过SEO优化提升官网流量。 一、新站SEO优化的核心要点 SEO优化不是一蹴而就的,特别是

2026年6月10日 02:03

十大洗脑广告(小时候有很多洗脑的广告,能给大家讲几个吗)

十大洗脑广告(小时候有很多洗脑的广告,能给大家讲几个吗)

“十大洗脑广告”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看十大洗脑广告(小时候有很多洗脑的广告,能给大家讲几个吗)!本文目录小时候有很多洗脑的广告,能给大家讲几个吗洗脑的经典广告词有哪些令你印象深刻的洗脑广告词求一些洗脑

2026年5月14日 23:22

农村电商十大成功案例(农产品营销成功的案例分析_农产品成功营销案例解析)

农村电商十大成功案例(农产品营销成功的案例分析_农产品成功营销案例解析)

其实农村电商十大成功案例的问题并不复杂,但是又很多的朋友都不太了解农产品营销成功的案例分析_农产品成功营销案例解析,因此呢,今天小编就来为大家分享农村电商十大成功案例的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目

2026年4月30日 21:23

新站如何快速提升排名的优化公司推荐:新站如何快速提升排名的优化公司好点推荐

新站如何快速提升排名的优化公司推荐:新站如何快速提升排名的优化公司好点推荐

『新站如何快速提升排名的优化公司好点推荐』 你有没有想过,新站怎么快速提升排名?说实话,我刚开始做网站的时候也踩过不少坑。今天就来聊聊新站优化哪个公司好点,特别是那些容易让新站排名的公司,希望能帮到你。 新站优化的核心需求 新站优化跟老站不

2026年6月28日 12:18

东莞人才市场招聘(智通人才市场怎么样)

东莞人才市场招聘(智通人才市场怎么样)

本篇文章给大家谈谈东莞人才市场招聘,以及智通人才市场怎么样对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录智通人才市场怎么样虎门人才市场招聘

2026年4月17日 04:03

怎样做网上代理卖东西(怎么帮人在网上卖东西)

怎样做网上代理卖东西(怎么帮人在网上卖东西)

大家好,怎样做网上代理卖东西相信很多的网友都不是很明白,包括怎么帮人在网上卖东西也是一样,不过没有关系,接下来就来为大家分享关于怎样做网上代理卖东西和怎么帮人在网上卖东西的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本

2026年5月3日 19:06

洮南医院网站建设项目如何选择合适的网站建设公司?

洮南医院网站建设项目如何选择合适的网站建设公司?

你有没有想过,为什么有的医院网站看起来那么专业,而有的却让人一看就头疼? 说实话,选择一个靠谱的网站建设公司,对洮南医院网站建设项目的成功至关重要。今天我们就来聊聊,洮南医院网站建设项目费用明细,帮大家避避坑,选对服务商。 一、费用构成解析

2026年6月23日 23:39

近期文章

本站热文

至强cpu参数(e52696v3处理器参数)
2024-04-28 15:30:07 浏览:455
标签列表

热门搜索