1.终端输入二维数组中的元素,求二维数组中第二大值,及其行标列标
#include<stdio.h>
int main()
{
int a[3][3];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
scanf(“%d”,&a[i][j]);
}
}
int r=0, c=0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (a[i][j] < a[i][j + 1]) {
r = i;
c = j;
}
}
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (a[i][j] < a[i][j + 1]) {
if (i == r && j == c) continue;
r = i;
c = j;
}
}
}
printf(“%d %d 第二大值%d\n”,r,c,a[r][c]);
return 0;
}
输入1 2 3 4 5 6 7 8 9,输出2 1 第二大值8
2.给定一个字符串“I love china”, 编写程序完成以单词为单位的逆序,如“china love i”,并要求不允许使用第三方变量保存数据,但可以使用辅助指针变量等。要求:不许使用数下标的方式完成。
#include <stdio.h>
#include <string.h>
int main()
{
char c[] = “I love china”;
int len = strlen(c );
int start, end;
int a = 0, b = len - 1,temp;
puts(c );
while (a < b) {
temp = c[a];
c[a] = c[b];
c[b] = temp;
a++;
b–;
}
int i = 0;
while (c[i]!=‘\0’) {
if (c[i] == ’ ‘) {
i++;
}
else {
start = i;
while (c[i]!=’ '&& c[i]!= ‘\0’) {
i++;
}
end = i;
while (start < end-1) {
temp = c[start];
c[start] = c[end-1];
c[end-1] = temp;
start++;
end–;
}
if (c[i] == ‘\0’) break;
i++;
}
}
puts(c );
}
结果输出:
3.输出杨辉三角
#include <stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int a[10][10] = { 0 };
a[0][0] = 1;
int i,j;
for (i = 0; i < 10; i++) {
for (j = 0; j <=i; j++) {
if (j < 1 || i<1) a[i][j] = 1;
else {
a[i][j] = a[i - 1][j] + a[i - 1][j - 1];
}
}
}
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
if(a[i][j]!=0)
printf(“%d\t”,a[i][j]);
}
printf(“\n”)
}
return 0;
}
结果输出: