编写程序:(一)搜索温度数组中是否有某个温度

假设下列数组含有一周24小时的温度读数,数组的每一行是某一天的读数:

int temperatures[7][24] ;

编写语句,使用search函数在整个temperatures数组中寻找值32。

#include <stdio.h>

#define TRUE 1
#define FALSE 0

typedef int Bool;
/* 使用二维数组时要把列数写出来(我也不知道为什么一定要写,不写就会报错)*/
Bool search(int a[][24], int m, int n, int key); 

main(){
    int temperatures[7][24] = { 
    { 7, 7, 7, 6, 5, 5, 5, 5, 5, 7, 10, 13, 13, 14, 15, 15, 15, 15, 13, 11, 10, 9, 8, 8},
    { 7, 7, 6, 6, 6, 6, 5, 5, 5, 7, 12, 13, 14, 14, 16, 17, 17, 15, 13, 11, 10, 9, 9, 8},
    { 8, 8, 7, 6, 4, 4, 4, 5, 5, 8, 8, 9, 9, 10, 10, 11, 10, 10, 9, 9, 9, 9, 8, 8},
    { 7, 7, 8, 8, 8, 9, 9, 9, 14, 14, 17, 18, 20, 24, 22, 21, 21, 14, 13, 11, 10, 9, 8, 8},
    { 7, 7, 7, 6, 5, 7, 11, 14, 15, 20, 24, 28, 30, 32, 34, 32, 25, 25, 18, 12, 10, 9, 8, 8},
    { 8, 8, 6, 6, 7, 8, 11, 15, 15, 17, 20, 23, 26, 29, 25, 25, 18, 15, 13, 11, 10, 9, 8, 7},
    { 7, 7, 7, 6, 7, 8, 9, 11, 15, 17, 20, 23, 27, 29, 32, 31, 25, 25, 18, 11, 10, 9, 8, 8}
    };
    int *p, num, i = 0, result;
    
    printf("Number to search for:");    
    scanf("%d", &num);
    
    printf("Enter a message:\n");
    for(p = &temperatures[0][0]; p <= &temperatures[6][23]; p++) {
        printf("%-3d", *p);
        i++;
        if(i % 24 == 0) printf("\n");
    }
    result = search(temperatures, 7, 24, num);
    printf("Result( 1 = TRUE, 0 = FALSE): %d", result);
    return 0;    
}

 Bool search(int a[][24], int m, int n, int key){
     int *p;
     for(p = &a[0][0]; p <= &a[m - 1][n - 1]; p++) {
         if(key == *p)
             return TRUE;
     }
     return FALSE;
 }

程序运行结果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值