数组练习(C语言)

一维数组

定义一个含有30个整型元素的数组,按顺序赋予从2开始的偶数,然后按顺序输出

#define _CRT_SECURE_NO_WARNINGS 1
#define Q 30
//定义一个含有30个元素的int整型数组
#include<stdio.h>
int main()
{
	int ass[Q], i, k = 1;
	//依次给数组赋偶数
	for (i = 0; i < Q; i++)
		ass[i] = 2 * i + 2;
	printf("正序输出:\n");
	for (i = 0; i < Q; i++)
	{
		printf("%3d ", ass[i]);		
		//每10个换行
		if ((i + 1) % 10 == 0)			
			printf("\n");
	}
	printf("逆序输出:\n");
	for (i = Q - 1; i >= 0; i--)
	{
		printf("%3d ", ass[i]);
		if (i % 10 == 0)
			printf("\n");
	}
	
	return 0;
}

在这里插入图片描述

从键盘输入9个整数存入一维数组中,将数组的值倒置后重新存入该数组并输出

//从键盘输入9个整数存入一维数组中,将数组的值倒置后重新存入该数组并输出
#define W 9
int main()
{
	int i, j;
	int t = 0;//在进行倒置的中间变量
	int arr[W];
	printf("请输入9个元素:\n");

	for (i = 0; i < W; i++)
		scanf("%d", &arr[i]);

	for (i = 0, j = W-1; i < j; i++, j--)
	{
		t = arr[i];
		arr[i] = arr[j];
		arr[j] = t;
	}
	printf("倒置后的数组是:");

	for (i = 0; i < W; i++)
		printf("%3d", arr[i]);

	return 0;
}

在这里插入图片描述

二维数组

1. 从键盘输入3行5列数,求所有数的最大值

#include<stdio.h>
#define M 3
#define N 5
int main()
{
    int a[M][N];
    int i, j, max, row = 0, colum = 0;
    for (i = 0; i < M; i++)              
        for (j = 0; j < N; j++)           
            scanf("%d", &a[i][j]);
    max = a[row][colum];
    for (i = 0; i < M; i++)
        for (j = 0; j < N; j++)
        {
            if (a[i][j] > max)
            {
                row = i; colum = j;
                max = a[row][colum];
            }
        }
    for (i = 0; i < M; i++)              
    {
        for (j = 0; j < N; j++)          
        {
            printf("%5d", a[i][j]);   
        }
        printf("\n");
    }
    printf("max:%d\nrow:%d\ncolum:%d\n", max, row + 1, colum + 1);
    return 0;
}

2. 从键盘输入3行5列数,求每行的最大值

#include<stdio.h>
#define M 3
#define N 5

int main()
{
    int a[M][N], i, j, max;
    for (i = 0; i < M; i++)
        for (j = 0; j < N; j++)
            scanf("%d", &a[i][j]);
    for (i = 0; i < M; i++)
    {
        max = a[i][0];
        for (j = 0; j < N; j++)
            if (a[i][j] > max)
                max = a[i][j];
        printf("第%d行最大值为%d\n",i+1, max);
    }
    return 0;
}

3. 从键盘输入3行5列数,求每列的最大值

#include<stdio.h>
#define M 3
#define N 5
int main()
{
    int a[M][N], i, j, max;
    for (i = 0; i < M; i++)
        for (j = 0; j < N; j++)
            scanf("%d", &a[i][j]);
    for (j = 0; j < N; j++)
    {
        max = a[0][j];
        for (i = 0; i < M; i++)
            if (a[i][j] > max)
                max = a[i][j];
        printf("第%d列最大值为: % d\n",j+1, max);
    }
    return 0;
}

4. 从键盘输入4行5列数,把数据是偶数的数放入另外一个数组(定义成一维的)中,输出放入偶数的数组

#include<stdio.h>
#define M 4
#define N 5

int main()
{
    int a[M][N],i, j;
    int x = 0, y = 0;
    int b[M * N];
    for (i = 0; i < M; i++)
        for (j = 0; j < N; j++)
            scanf("%d", &a[i][j]);
    for (i = 0; i < M; i++)
        for (j = 0; j < N; j++)
            if (a[i][j] % 2 == 0)
            {
                b[x] = a[i][j];
                x++;
            }
    for (x--; x >= 0; x--)
        printf("%3d",b[x]);
    return 0;
}

5. 在3行4列的二维数组x中,找出数组的最大值以及此最大值所在的行列下标

#include<stdio.h>
#define M 3
#define N 4
int main()
{
    int a[M][N];
    int i, j, max, row = 0, colum = 0;
    for (i = 0; i < M; i++)
        for (j = 0; j < N; j++)
            scanf("%d", &a[i][j]);
    max = a[row][colum];
    for (i = 0; i < M; i++)
        for (j = 0; j < N; j++)
        {
            if (a[i][j] > max)
            {
                row = i; colum = j;
                max = a[row][colum];
            }
        }
    printf("max:%d\nrow:%d\ncolum:%d\n", max, row + 1, colum + 1);
    return 0;
}

6. 有5人3门课成绩,编程求各科的平均分,和总平均成绩

#include <stdio.h>
int main()
{
	float scores[5];
	float avestu[5];
	float avecourse[5];
	float sum = 0;
	float aaa;
	printf("请输入这五个学生的第1个成绩");
	for (int i = 0; i < 5; i++)
	{
		scanf("%f", &scores[i]);
		sum = sum + scores[i];
	}
	printf("该科的平均成绩为:%f\n", (sum / 5.0));
	aaa = sum;
	sum = 0;
	printf("请输入这五个学生的第2个成绩");
	for (int i = 0; i < 5; i++)
	{
		scanf("%f", &avestu[i]);
		sum = sum + avestu[i];
	}
	printf("该科的平均成绩为:%f\n", (sum / 5.0));

	sum = 0;
	printf("请输入这五个学生的第3个成绩");
	for (int i = 0; i < 5; i++)
	{
		scanf("%f", &avecourse[i]);
		sum = sum + avecourse[i];
	}
	printf("该科的平均成绩为:%f\n", sum / 5.0);
	aaa += sum;
	printf("总平均成绩为:%d", aaa / 3);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小赛毛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值