关于数组的一些练习
循环输入近6年某高校的录取分数,求出平均分和最低分
#include<stdio.h>
int main()
{
int arr[6];
int sum = 0;
int i;
for(i=0;i<6;i++)
{
printf("请输入第%d年的录取分数:\n",i+1);
scanf("%d",&arr[i]);
}
int min = arr[0];
for(i=0;i<6;i++)
{
if(arr[i]<min)
{
min = arr[i];
printf("最低分为:%d\n",arr[i]);
}
}
for(i=0;i<6;i++)
{
sum += arr[i];
}
printf("平均分数为:%d\n",sum/6);
return 0;
}
有一个数列:8,4,2,1,23,344,12
循环输出数列的值
逆序输出数列的值
求数列中所有数值的和
猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数
#include<stdio.h>
int main()
{
int arr[7] = {8,4,2,1,23,344,12};
int i;
int sum = 0;
int num;
for(i=0;i<=6;i++)
{
printf("%d\t",arr[i]);
}
printf("\n");
for(i=6;i>=0;i--)
{
printf("%d\t",arr[i]);
}
printf("\n");
for(i=0;i<7;i++)
{
sum += arr[i];
}
printf("所有数值的和为\n%d",sum);
printf("\n");
printf("请输入你要查找的数:\n");
scanf("%d",&num);
for(i=0;i<7;i++)
{
if(num==arr[i])
{
printf("找到了\n");
}
}
if(i==7)
{
printf("对不起,没有找到");
}
return 0;
}
判断俩个整数数组是否相同
#include<stdio.h>
int main()
{
int arr1[5];
int arr2[5];
int i;
printf("请为arr1赋5个值\n");
for(i=0;i<5;i++)
{
scanf("%d",&arr1);
}
printf("请为arr2赋5个值\n");
for(i=0;i<5;i++)
{
scanf("%d",&arr2);
}
int arr1con = sizeof(arr1)/sizeof(arr1[0]);
int arr2con = sizeof(arr2)/sizeof(arr2[0]);
if(arr1con != arr2con)
{
printf("arr1 != arr2\n");
}
for(i=0;i<arr1con;i++)
{
if(arr1[i] != arr2[i])
{
printf("arr1 != arr 2\n");
}
i++;
}
printf("arr1 = arr2");
return 0;
}
去掉数组中重复的数字
int main()
{
int a[10]={0};
int i,j;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
for(j=0;j<i;j++)
{
if(a[i]==a[j])
{
a[i]=0;
}
}
if(a[i]>0)printf("%d\t",a[i]);
}
return 0;
}
最后附加一个综合训练
************欢迎进入海峰考务系统****************
1.添加学生成绩
2.查看所有学生成绩
3.根据学号查看成绩
4.查看成绩最高分和学号
5.查看成绩最低分和学号
6.查看成绩平均分
7.根据学号修改成绩
8.退出
*************************************************
请选择:
// stu[学生数量][2] 第一列保存学号,第二列保存成绩
#include<stdio.h>
#define INCREASE_SCORE 1
#define SEARCH_ALL 2
#define SEARCH_SCORE 3
#define MAX_SCORE 4
#define MIN_SCORE 5
#define AVE_SCORE 6
#define MODIFY_SCORE 7
#define EXIT 8
int student[10][2] = {0};
int index = 0;//表示当前学生个数
//打印系统菜单函数
int menu();
void increase_score();
void print_score();
void find_score();
void max_score();
void min_score();
void ave();
void exit();
int main()
{
int option;
char ch;
while(option!=8)
{
option = menu();
switch(option)
{
case INCREASE_SCORE:
increase_score();
print_score();
break;
case SEARCH_ALL:
print_score();
break;
case SEARCH_SCORE:
find_score();
break;
case MAX_SCORE:
max_score();
break;
case MIN_SCORE:
min_score();
break;
case AVE_SCORE:
ave();
break;
case MODIFY_SCORE:
exit();
break;
case EXIT:
break;
default:
printf("输入错误\n");
break;
}
printf("是否继续?(y/n):");
getchar();
scanf("%c",&ch);
if(ch == 'y')
{
continue;
}
else
{
printf("感谢使用,再见");
break;
}
}
return 0;
}
int menu()
{
int option;
printf("************欢迎进入海峰考务系统****************\n");
printf(" 1.添加学生成绩\n");
printf(" 2.查看所有学生成绩\n");
printf(" 3.根据学号查看成绩\n");
printf(" 4.查看成绩最高分和学号\n");
printf(" 5.查看成绩最低分和学号\n");
printf(" 6.查看成绩平均分\n");
printf(" 7.根据学号修改成绩\n");
printf(" 8.退出 \n");
printf("*************************************************\n");
printf("请选择:");
scanf("%d",&option);
return option;
}
void increase_score()
{
int id; //学生学号变量
int score; //学生成绩的变量
printf("请输入学生的学号:") ;
scanf("%d",&id);
printf("请输入学生的成绩:") ;
scanf("%d",&score);
if(index>=10)
{
printf("数组已满\n");
}
else
{
student[index][0] = id;
student[index][1] = score;
index++;
printf("添加成功\n");
}
}
void print_score()
{
int i;
for(i=0;i<index;i++)
{
printf("学生的学号:%d,学生的成绩%d\n",student[i][0],student[i][1]);
}
}
void find_score()
{
int i,j,k;
printf("请输入学号:\n");
scanf("%d",&i);
for(j=0;j<10;j++){
if(student[j][0] == i){
printf("该学生成绩为:%d\n",student[j][1]);
}
}
}
void max_score()
{
int a,b;
int h = student[0][0];
for(a=0;a<10;a++){
if(h<student[a][1]){
h = student[a][1];
}
}
printf("最高分为:%d\n",h);
for(a=0;a<10;a++){
for(b=0;b<2;b++){
if(h == student[a][b]){
printf("学号为:%d\n",student[a][0]);
}
}
}
}
void min_score()
{
int i;
int min = student[0][1];
for(i = 0; i < index; i++)
{
if(min > student[i][1])
{
min = student[i][1];
}
}
printf("这次考试的最低成绩是%d\n", min);
printf("成绩最低的同学是:\n");
for(i = 0; i < index; i++)
{
if(min == student[i][1])
{
printf("%d\n", student[i][0]);
}
}
}
void ave()
{
int a;
int sum = 0;
for(a=0;a<10;a++){
sum =sum + student[a][1];
if(student[a][1] == 0){
break;
}
}
printf("平均成绩为:%d\n",sum/(a+1));
}
void exit()
{
int a,b,c;
printf("请输入要改的同学的学号:\n");
scanf("%d",&a);
for(b=0;b<10;b++){
if(a == student[b][0]){
printf("请输入修改的成绩:\n");
scanf("%d",&c);
student[b][1] = c;
}
}
}
今天的练习题还是让自己意识到了一些知识点的不足,继续努力吧!