C语言代码练习

 1.问题描述:

读入一个3×4的矩阵,求出矩阵中的最大值,并输出最大值所在的行号和列号。

 样例输入:

1 2 3 4
9 8 7 6
-10 10 -5 2
 

样例输出:

10 2 1
 

 解答:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
    int num;
    int n[3][4];
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 4; j++) {
            scanf("%d", &num);
            n[i][j] = num;
        }
    }
    int max[3];
    int maxIndex;
    for (int i = 0; i < 3; i++) {
        max[i] = n[i][0];
        maxIndex = 0;
        for (int j = 1; j < 4; j++) {
            if (n[i][j] > max[i]) {
                max[i] = n[i][j];
                maxIndex = j;
            }
        }
    }
    int big = max[0];
    int row = 0;
    int col = maxIndex;
    for (int i = 1; i < 3; i++) {
        if (max[i] > big) {
            big = max[i];
            row = i;
            col = maxIndex;
        }
    }
    printf("%d %d %d", big, row, col);

    return 0;
}

2,题目描述

输入3个字符串,找出并输出其中的最大一个字符串。

样例输入:

CHINA
HOLLAND
AMERICA
 

样例输出:
HOLLAND

解答:

#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h" 
#include "string.h" 
int main() {
    char a[100], b[100], c[100], max[100];
    gets(a);
    gets(b);
    gets(c);
    if (strcmp(a, b) > 0) strcpy(max, a);
    else strcpy(max, b);
    if (strcmp(max, c) < 0) strcpy(max, c);
    puts(max);
    return 0;
}

3.题目描述:

将一个数组中的值按照原始顺序的逆序重新存放,并输出逆序后的数组。

 样例输入:

10
1 2 3 4 5 6 7 9 10 11

 样例输出:

11 10 9 7 6 5 4 3 2 1 

 解答:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
	int n;
	scanf("%d", &n);
	int num[n];
	int a;
	for (int i = 0; i < n; i++) {
		scanf("%d", &a);
		num[i] = a;
	}
	for( int i=n-1;i>=0;i--){
		printf("%d ", num[i]);
	}
	return 0;
}

 4.题目描述:

给定15个按从大到小已经有序的整数,将其放在一个数组中。另外输入一个整数,要求使用折半查找法找出该数是数组中的第几个元素的值。如果该数不在数组中,则输出“NO”。

样例输入:

1 3 5 7 9 10 13 15 16 17 20 21 22 23 24
10

 样例输出:

5

解答:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
	int num[15];
	int n;
	int a;
	int prinme = 0;
	int y;
	for (int i = 0; i < 15; i++) {
		scanf("%d", &a);
		num[i] = a;
	}
	scanf("%d", &n);
	for (int i = 0; i < 15; i++) {
		if (num[i] == n) {
			prinme = 1;
			y = i;
			break;
	}
	}
	if (prinme == 1) {
		printf("%d", y);
	}

	return 0;
}

5.题目描述:

给出一篇文章,共有3行文字,每行有最多80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。

样例输入:

I am a program.
This is the second line!
And this is the last line........

样例输出:

3 47 0 12 10

 解答:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
    int i, j, a = 0, b = 0, c = 0, d = 0, oth = 0;
    char s[3][80];
    for (i = 0; i < 3; i++)
    {
        gets(s[i]);
        for (j = 0; j < 80 && s[i][j] != '\0'; j++)
        {
            if (s[i][j] >= 'A' && s[i][j] <= 'Z')
                a++;
            else if (s[i][j] >= '0' && s[i][j] <= '9')
                b++;
            else if (s[i][j] >= 'a' && s[i][j] <= 'z')
                c++;
            else if (s[i][j] == ' ')
                d++;
            else
                oth++;
        }
    }
    printf("%d %d %d %d %d", a, c, b, d, oth);
    return 0;
}

  • 21
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

代码一探索者

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

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

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

打赏作者

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

抵扣说明:

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

余额充值