上机练习13

p216.c

/*
编写一程序P216.C实现以下功能
  求任意的一个m×m矩阵的最大数及其所在的行列数,m(2<=m<=20)及矩阵元素从键盘输入(只考虑int型)。
编程可用素材:
printf("Please input m: ");
printf("\nPlease input array:\n");
printf("\nmax=…,i=…,j=…\n"…;

*/
#include <stdio.h>
#define M 20

int main(void)
{
    int arr[M][M];
    int data;
    int i, j, max, row, col;
    //input
    printf("Please input m: ");
    scanf("%d", &data);
    printf("\nPlease input array:\n");
    for (i = 0; i < data; i++)
    {
        for (j = 0; j < data; j++)
        {
            scanf("%d", &arr[i][j]);
        }
    }
    //process
    max = arr[0][0];
    row = col = 0;
    for (i = 0; i < data; i++)
    {
        for (j = 0; j < data; j++)
        {
            if (arr[i][j] > max)
            {
                max = arr[i][j];
                row = i;
                col = j;
            }
        }
    }
    //output
    printf("\nmax=%d,i=%d,j=%d\n", max, row, col);
    return 0;
}

p217.c

/*
编写一程序P217.C实现以下功能
  求任意的一个m×m矩阵的对角线上元素之和,m(2<=m<=20)及矩阵元素从键盘输入(只考虑int型,且不需考虑求和的结果可能超出int型能表示的范围)。
编程可用素材:printf("Please input m: ")、printf("Please input array:\n")、printf("\nsum=…\n"…。
*/
#include <stdio.h>
#define M 20

int main(void)
{
    int arr[M][M];
    int data;
    int i, j, sum = 0;
    //input
    printf("Please input m: ");
    scanf("%d", &data);
    printf("Please input array:\n");
    for (i = 0; i < data; i++)
    {
        for (j = 0; j < data; j++)
        {
            scanf("%d", &arr[i][j]);
        }
    }
    //process
    // 注意,对角线有两根i==j和i+j==data-1
    for (i = 0; i < data; i++)
    {
        for (j = 0; j < data; j++)
        {
            if (i == j || i + j == data - 1)
            {
                sum += arr[i][j];
            }
        }
    }
    //output
    printf("\nsum=%d\n", sum);
    return 0;
}

p218.c

/*
编写一程序P218.C实现以下功能
  求任意的一个m×m矩阵的周边元素之和,m(2<=m<=20)及矩阵元素从键盘输入(只考虑int型,且不需考虑求和的结果可能超出int型能表示的范围)。
编程可用素材:printf("Please input m: ")、printf("Please input array:\n")、printf("\nsum=…\n"…。
*/
#include <stdio.h>
#define M 20

int main(void)
{
    int arr[M][M];
    int data;
    int i, j, sum = 0;
    //input
    printf("Please input m: ");
    scanf("%d", &data);
    printf("Please input array:\n");
    for (i = 0; i < data; i++)
    {
        for (j = 0; j < data; j++)
        {
            scanf("%d", &arr[i][j]);
        }
    }
    //process
    // 周边:i=0,j=0,i=data-1,j=data-1
    for (i = 0; i < data; i++)
    {
        for (j = 0; j < data; j++)
        {
            if (i == 0 || j == 0 || i == data - 1 || j == data - 1)
            {
                sum += arr[i][j];
            }
        }
    }
    //output
    printf("\nsum=%d\n", sum);
    return 0;
}

p234.c

/*
编写一程序P234.C实现以下功能
  求任意的一个m×m矩阵的第0行和最后一行所有数之和,m(2<=m<=20)及矩阵元素从键盘输入(只考虑int型)。
编程可用素材:printf("Please input m: ")、printf("\nPlease input array:\n")、printf("\nSum = …\n"…。
*/
#include <stdio.h>
#define M 20

int main(void)
{
    int arr[M][M];
    int data;
    int i, j, sum = 0;
    //input
    printf("Please input m: ");
    scanf("%d", &data);
    printf("\nPlease input array:\n");
    for (i = 0; i < data; i++)
    {
        for (j = 0; j < data; j++)
        {
            scanf("%d", &arr[i][j]);
        }
    }
    //process
    // 0行,最后一行:i=0 i=data-1
    for (i = 0; i < data; i++)
    {
        for (j = 0; j < data; j++)
        {
            if (i == 0 || i == data - 1)
            {
                sum += arr[i][j];
            }
        }
    }
    //output
    printf("\nSum = %d\n", sum);
    return 0;
}

p235.c

/*
编写一程序P235.C实现以下功能
  求任意的一个m×m矩阵的第0列和最后一列所有数之和,m(2<=m<=20)及矩阵元素从键盘输入(只考虑int型)。
编程可用素材:printf("Please input m: ")、printf("\nPlease input array:\n")、printf("\nSum = …\n"…。
*/
#include <stdio.h>
#define M 20

int main(void)
{
    int arr[M][M];
    int data;
    int i, j, sum = 0;
    //input
    printf("Please input m: ");
    scanf("%d", &data);
    printf("\nPlease input array:\n");
    for (i = 0; i < data; i++)
    {
        for (j = 0; j < data; j++)
        {
            scanf("%d", &arr[i][j]);
        }
    }
    //process
    // 周边:i=0 i=data-1
    for (i = 0; i < data; i++)
    {
        for (j = 0; j < data; j++)
        {
            if (j == 0 || j == data - 1)
            {
                sum += arr[i][j];
            }
        }
    }
    //output
    printf("\nsum=%d\n", sum);
    return 0;
}

p236.c

/*
编写一程序P236.C实现以下功能
  求任意的一个m×m矩阵的第0行、第2行和最后一行所有数之和,m(4<=m<=20)及矩阵元素从键盘输入(只考虑int型)。
编程可用素材:printf("Please input m: ")、printf("\nPlease input array:\n")、printf("\nSum = …\n"…。
*/
#include <stdio.h>
#define M 20

int main(void)
{
    int arr[M][M];
    int data;
    int i, j, sum = 0;
    //input
    printf("Please input m: ");
    scanf("%d", &data);
    printf("\nPlease input array:\n");
    for (i = 0; i < data; i++)
    {
        for (j = 0; j < data; j++)
        {
            scanf("%d", &arr[i][j]);
        }
    }
    //process
    // 周边:i=0 i=data-1
    for (i = 0; i < data; i++)
    {
        for (j = 0; j < data; j++)
        {
            if (i == 0 || i == 2 || i == data - 1)
            {
                sum += arr[i][j];
            }
        }
    }
    //output
    printf("\nsum=%d\n", sum);
    return 0;
}

p237.c

/*
编写一程序P237.C实现以下功能
  求任意的一个m×m矩阵的第0列、第2列和最后一列所有数之和,m(4<=m<=20)及矩阵元素从键盘输入(只考虑int型)。
编程可用素材:printf("Please input m: ")、printf("\nPlease input array:\n")、printf("\nSum = …\n"…。
*/
#include <stdio.h>
#define M 20

int main(void)
{
    int arr[M][M];
    int data;
    int i, j, sum = 0;
    //input
    printf("Please input m: ");
    scanf("%d", &data);
    printf("\nPlease input array:\n");
    for (i = 0; i < data; i++)
    {
        for (j = 0; j < data; j++)
        {
            scanf("%d", &arr[i][j]);
        }
    }
    //process
    // 周边:i=0 i=data-1
    for (i = 0; i < data; i++)
    {
        for (j = 0; j < data; j++)
        {
            if (j == 0 || j == 2 || j == data - 1)
            {
                sum += arr[i][j];
            }
        }
    }
    //output
    printf("\nsum=%d\n", sum);
    return 0;
}

p272.c

/*编写一程序P272.C实现以下功能
  从键盘读入一行字符(约定:字符数≤127字节),统计该行字符中出现的数字、小写字母、大写字母和其它字符的数量,
最后按示例格式输出这四类字符的数量及其内容。
编程可用素材:
printf("Please intput the string: ");
printf("\nDigistal string length = …, Digitals: …\n"…;
printf("azLetter string length = …, azLetters: …\n"…;
printf("AZLetter string length = …, AZLetters: …\n"…;
printf("Symbol string length = …, Symbols: …\n"…;

*/
#include <stdio.h>
#include <string.h>
#define N 128
int main(void)
{
    char str[N];
    int i, len;
    int ld, llaz, llAZ, ls;
    char strd[N], straz[N], strAZ[N], strs[N];
    // input
    printf("Please intput the string: ");
    gets(str);
    len = strlen(str);

    // process
    ld = llaz = llAZ = ls = 0;
    for (i = 0; i < len; i++)
    {
        if (str[i] >= '0' && str[i] <= '9')
        {
            strd[ld++] = str[i];
        }
        else if (str[i] >= 'a' && str[i] <= 'z')
        {
            straz[llaz++] = str[i];
        }
        else if (str[i] >= 'A' && str[i] <= 'Z')
        {
            strAZ[llAZ++] = str[i];
        }
        else
        {
            strs[ls++] = str[i];
        }
    }
    strd[ld] = '\0';
    straz[llaz] = '\0';
    strAZ[llAZ] = '\0';
    strs[ls] = '\0';

    // output
    printf("\nDigistal string length = %d, Digitals: %s\n", ld, strd);
    printf("azLetter string length = %d, azLetters: %s\n", llaz, straz);
    printf("AZLetter string length = %d, AZLetters: %s\n", llAZ, strAZ);
    printf("Symbol string length = %d, Symbols: %s\n", ls, strs);
    return 0;
}

p274.c

/*
编写一程序P274.C实现以下功能
  从键盘读入一行字符(约定:字符数≤127字节),统计并显示该行字符中26个英文字母(不区分大小写)各自出现的次数,没有出现的字符不显示。
编程可用素材:printf("请输入一行字符:")、printf("统计结果为:\n")、printf("%c-%d\n"…。
*/
#include <stdio.h>
#include <string.h>
#define N 128

int main(void)
{
    char str[N];
    int count[26] = {0};
    int len, i;
    // input
    printf("请输入一行字符:");
    gets(str);
    len = strlen(str);
    // process
    for (i = 0; i < len; i++)
    {
        if (str[i] >= 'a' && str[i] <= 'z')
        {
            count[str[i] - 32 - 'A']++;
        }
        else if (str[i] >= 'A' && str[i] <= 'Z')
        {
            count[str[i] - 'A']++;
        }
    }
    //output
    printf("统计结果为:\n");
    for (i = 0; i < 26; i++)
    {
        if (count[i] != 0)
        {
            printf("%c-%d\n", 'A' + i, count[i]);
        }
    }
    return 0;
}

p275.c

/*
编写一程序P275.C实现以下功能
  从键盘读入一行字符(约定:字符数≤127字节),统计并显示该行字符中10个数字字符各自出现的次数,没有出现的字符不显示。
编程可用素材:printf("请输入一行字符:")、printf("统计结果为:\n")、printf("%c-%d\n"…。
*/
#include <stdio.h>
#include <string.h>
#define N 128

int main(void)
{
    char str[N];
    int count[10] = {0};
    int len, i;
    // input
    printf("请输入一行字符:");
    gets(str);
    len = strlen(str);
    // process
    for (i = 0; i < len; i++)
    {
        if (str[i] >= '0' && str[i] <= '9')
        {
            count[str[i] - '0']++;
        }
    }
    //output
    printf("统计结果为:\n");
    for (i = 0; i < 10; i++)
    {
        if (count[i] != 0)
        {
            printf("%c-%d\n", '0' + i, count[i]);
        }
    }
    return 0;
}

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐