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;
}