C语言实习报告Word文件下载.docx
- 文档编号:20384637
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:24
- 大小:333.90KB
C语言实习报告Word文件下载.docx
《C语言实习报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言实习报告Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
inta[11],i,j,t,b,c,temp1,temp2,temp3;
//定义一个数组a[11],用以存放学生的成绩
printf("
从键盘输入10个学生成绩:
\n"
);
for(i=0;
i<
10;
i++)
scanf("
%d"
&
a[i]);
//输入10个学生成绩
9;
for(j=0;
j<
9-i;
j++)
if(a[j]<
a[j+1])
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}//采用冒泡法,将学生成绩按照从高到低进行排序
10个学生成绩数组:
printf("
%5d"
a[i]);
再输入一个学生的成绩\n"
scanf("
b);
//再输入一个学生的成绩
c=a[9];
if(b<
c)//将此成绩按照排序规律插入原学生成绩数组
a[10]=b;
else
{for(i=0;
{if(a[i]<
b)
{temp1=a[i];
a[i]=b;
for(j=i+1;
11;
{temp2=a[j];
a[j]=temp1;
temp1=temp2;
}break;
}
11个学生成绩数组:
//输入11个学生成绩
5;
i++)//排好序的成绩单进行反序存放
{
temp3=a[i];
a[i]=a[10-i];
a[10-i]=temp3;
排好序的成绩单进行反序存放为:
i++)//输出反序存放后的学生成绩数组
return0;
}
3,运行结果:
2,根据条件进行学生成绩排名
Sort1sort2
Sort3
voidsort1(inta[10])//定义函数
{inti,j,t;
输入10个学生成绩:
//输入n个学生成绩
i++)//冒泡法对n个数字排序
}
10个学生成绩从高到低排名就是:
i++)//输出结果
voidsort2(inta[],intn)//定义函数
inti,j,t;
请输入学生个数n:
n);
输入n个学生成绩:
n;
n-i-1;
n个学生成绩从高到低排名就是:
voidsort3(inta[],intn,charstyle)
{charc;
getchar(c);
请输入style类型:
aord\n"
style=getchar();
if(style==97)
{printf("
对n个数字升序排列为:
for(i=0;
i++)//冒泡法对n个数字升序排列
if(a[j]>
elseif(style==100)
对n个数字降序排列为:
i++)//冒泡法对n个数字降序排列
}
n个学生成绩排名就是:
intmain()//主函数
{printf("
sort1:
//调用sort1函数
inta[10];
sort1(a);
sort2:
//调用sort2函数
inta[30000],n;
sort2(a,n);
sort3:
//调用sort3函数
charstyle;
sort3(a,n,style);
这个程序中输入字符时由于前面的程序的干扰,第一个输入字符语句会直接跳过,所以要另加一个空白的输入字符的语言,从而使程序中输入字符的语句能够正常运行>
由于数组的长度必须要定义,而且不能用变量定义,鉴于要进行比较的数据量n就是一个整形的数,定义数组为一个较长数组即可>
3,用指针优化学生成绩排名
1,流程图:
Sortcopy
main
string、h>
voidsort(int*p)//定义函数sort
{//将成绩数组按照从高到低进行排序,要求用函数实现
if(*(p+j)<
*(p+j+1))
{t=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=t;
voidcopy(char*a,char*b)//定义函数copy
for(;
*a!
='
\0'
;
a++,b++)//复制该字符串,用函数实现
{*b=*a;
*b='
inti,j,t,stu[10],*p;
//定义一个数组stu[10]存放10个学生的成绩
p=stu;
请输入10个数据:
i++)//从键盘输入数据,用指针实现
p+i);
数组stu[10]的内容为:
i++)//将数组stu[10]的内容输出到屏幕上,用指针实现
*(p+i));
i++)//将成绩数组按照从高到低进行排序,用指针实现
成绩数组按照从高到低进行排序为:
sort(p);
//调用函数sort
第三步内容放在函数中实现为:
采用指针方法,输入字符串studentscore:
\n"
char*a="
studentscore"
charb[14];
copy(a,b);
//调用函数copy
%s\n"
b);
指针的传递就是双向的,在赋值中有多种方法,比如说对数组直接赋值,或者直接对指针变量进行赋值>
复制该字符串,用函数实现时就是用循环语句把一个字符串的每一个字符赋值给另一个字符串>
3,运行结果:
4,学生成绩单制作
结构体语言具有简洁,方便,模块化的特点,在初始化及输出过程中要注意输入输出方式>
在输入字符串的时候,输入语句中不应有&
>
2,程序:
StructStudent//定义结构体
charnumber[10];
charname[10];
intscore[3
];
floataverage;
}student[10];
i++)//初始化结构体
\n输入student%d成绩:
i+1);
number:
"
%s"
student[i]、number);
name:
//存放10个学生的学号,姓名,三门课的成绩
student[i]、name);
for(j=0;
3;
score%d:
j+1);
student[i]、score[j]);
student[i]、average=(student[i]、score[0]+student[i]、score[1]+student[i]、score[2])/3、0;
average:
%f"
student[i]、average);
输出数学成绩最高的学生的学号、姓名、以及该门课程的成绩:
//输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩
intmax=0,max_math=0,max_chinese=0,max_english=0,max_average=0,max_i=0;
if(max_math<
student[i]、score[0])
{max_math=student[i]、score[0];
max_i=i;
number=%s,name=%s,max_math=%d\n"
student[max_i]、number,student[max_i]、name,student[max_i]、score[0]);
输出中文成绩最高的学生的学号、姓名、以及该门课程的成绩:
if(max_chinese<
student[i]、score[1])
{max_chinese=student[i]、score[1];
number=%s,name=%s,max_chinese=%d\n"
student[max_i]、number,student[max_i]、name,student[max_i]、score[1]);
if(max_english<
student[i]、score[2])
{max_english=student[i]、score[0];
number=%s,name=%s,max_english=%d\n"
student[max_i]、number,student[max_i]、name,student[max_i]、score[2]);
输出三门课程的平均分数最高的学生的学号、姓名及其平均分:
//输出三门课程的平均分数最高的学生的学号、姓名及其平均分
if(max_average<
student[i]、average)
{max_average=student[i]、average;
number=%s,name=%s,max_average=%f\n"
student[max_i]、number,student[max_i]、name,student[max_i]、average);
i++)//将10个学生按照平均分数从高到低进行排序
if(student[j]、average<
student[j+1]、average)
{t=student[j]、average;
student[j]、average=student[j+1]、average;
student[j+1]、average=t;
numbernamemathChineseEnglishaverage\n"
i++)//输出排序后的结果
%8s%8s%9d%9d%9d%6、2f\n"
student[i]、number,student[i]、name,student[i]、score[0],student[i]、score[1],student[i]、score[2],student[i]、average);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实习 报告