第八次作业,这不是占坑,前方高能预警!!
这不是占坑:这不是占坑:这不是占坑:重要的事情说三遍!!!
1.输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩。
#include<stdio.h>
#define N 100
int main()
{
int score[N],n,sum=0,max,s,min,index1,index2,i,x;
double average=0;
printf("请输入学生的数量:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("请输入第%d学生的成绩",(i+1));
scanf("%d",&score[i]);
sum=sum+score[i];
}
average=(double)sum/n;
printf("average=%.2lf",average);
max=score[0];
index1=0;
index2=0;
min=score[0];
for(i=0;i<n;i++)
{
if(score[i]>max)
{
max=score[i];
index1=i;
}
}
printf("max=%d",max);
for(i=0;i<n;i++)
{
if(score[i]<min)
{
min=score[i];
index2=i;
}
}
printf("min=%d",min);
printf("\n请输入一个成绩:");
scanf("%d",&x);
for(i=1;i<=n;i++)
{
if(x==score[i])
{
printf("\n与第%d个学生对应",(i+1));
s++;
}
}
printf("有%d个学生",s);
return 0;
}
2.现有一个有序正整数数组(从小到大排序),输入一个数,插入到数组中,要求插入后的数组仍然有序。对插入到最前、最后、中间位置三种情况进行验证。
#include<stdio.h>
#define N 11
int main()
{
int num[N]={1,3,5,7,9,11,13,15,17,19},i,a,n,b;
printf("输入你要插入的数:");
scanf("%d",&a);
for(i=10;i>=0;i++)
{
if(a>=num[i])
{
for(n=10;n>i;n--)
{
num[n]=num[n-1];
}
num[i]=a;
break;
}
}
for(b=0;b<=10;b++)
{
printf(" %d",num[b]);
}
return 0;
}
3.用数组实现火柴棍等式
#include<stdio.h> int main() { int gen[10]={6,2,5,5,4,5,6,3,7,6},x,y,z; for(x=0;x<=9;x++) { for(y=0;y<=9;y++) { z=x+y; if(z>9) { break; } if(gen[x]+gen[y]+gen[z]==12) { printf("%d+%d=%d\n",x,y,z); } } } return 0; }
输入一行任意长的数字,用数组元素作为计数器统计每个数字出现的次数。用下标为0的元素统计0出现的次数,用下标为1的元素统计1出现的次数…
#include<stdio.h> int main() { int i,num[10]={0}; char n; printf("输入一串数字:\n"); while(n!='\n') { scanf("%c",&n); num[n-'0']++; } for(i=0;i<=9;i++) { printf("第%d个数有%d个\n",i,num[i]); } return 0; }
二、知识点总结
1:数组名中存放的是一个地址常量。
2:必须遵循表示符命名规则。
3:动态赋值通常用循环结构实现。
4:先定义,后使用。
5:数组变量本身不能被赋值。
三、实验总结
1:定义某个数是从零开始,并且直到它本身减去一,如果其中某位未赋值,那个就会默认为0.
2:可用#define主函数定义自己要输入值得范围例如#define N 5就是从0到4.
3:越界的数组访问可能导致系统崩溃,怂啥,不就是重启吗?
4:不会就问,别问度娘,否则还不如不写作业。