#include<stdio.h> main() { int a[4][8]={{80,150,190,220,255,275,300,330},//lmwh {80,155,195,230,265,290,315,350},//lmsq {60,110,145,170,185,205,230,260},//qenbg {85,160,205,240,280,305,335,370}};//xzfjd char b[4][100]={"龙门外环","龙门市区","切尔诺伯格","休止符街道"}; int q,i,j,t,k,l; printf("q~~"); scanf("%d",&q); for(i=0;i<4;i++) for(j=0;j<8;j++) { t=a[i][j]; for(k=0;k<4;k++) { for(l=0;l<8;l++) if(a[i][j]+a[k][l]==q) { printf("%s(a[%d][%d])+%s(a[%d][%d])=%d",b[i],i,j,b[k],k,l,q); return 0; } } } printf("No combination is established\n"); }
时间: 2023-08-02 15:10:29 浏览: 55
这段代码是一个简单的练习题,它实现了一个二维数组a和一个一维数组b的初始化,然后让用户输入一个数字q,程序会在二维数组a中查找两个数字相加等于q的组合,并输出对应的一维数组b中的值。
具体来说,程序首先接受用户输入的数字q,然后使用两个for循环遍历二维数组a中的每一个元素,将每个元素与其他元素相加,查找是否有和等于q的组合。如果找到了就输出对应的一维数组b中的值,并结束程序;如果没有找到则输出"No combination is established"。
需要注意的是,这段代码存在一些不规范的写法,如main函数没有显式地指定返回类型,没有定义变量时没有给出类型等。正确的写法应该是:
```
#include <stdio.h>
int main() {
int a[4][8] = {{80, 150, 190, 220, 255, 275, 300, 330}, //lmwh
{80, 155, 195, 230, 265, 290, 315, 350}, //lmsq
{60, 110, 145, 170, 185, 205, 230, 260}, //qenbg
{85, 160, 205, 240, 280, 305, 335, 370}};//xzfjd
char b[4][100] = {"龙门外环", "龙门市区", "切尔诺伯格", "休止符街道"};
int q, i, j, t, k, l;
printf("q~~");
scanf("%d", &q);
for (i = 0; i < 4; i++) {
for (j = 0; j < 8; j++) {
t = a[i][j];
for (k = 0; k < 4; k++) {
for (l = 0; l < 8; l++) {
if (a[i][j] + a[k][l] == q) {
printf("%s(a[%d][%d])+%s(a[%d][%d])=%d", b[i], i, j, b[k], k, l, q);
return 0;
}
}
}
}
}
printf("No combination is established\n");
return 0;
}
```