酒言一笑 2021-07-16 17:10 采纳率: 100%
浏览 526
已采纳

C语言,怎样把两组不相干的数据一一对应起来?

下面程序用来生成图书名称,有676种书,每一种书的名字都不一样。

#include<stdio.h>
int main(){
    int i,j,n=0;
    int name1,name2;
    for(i=0;i<=25;i++){
        for(j=0;j<=25;j++){
        name1=i+65;
        name2=j+65;
        n=n+1;
        if(n%6==0)printf("\n");    
        printf("%c%cBook    ",name1,name2);
        }
    }
    return 0;
} 

下面程序用来随机生成数字,共有676个数字,代表上面每一种书的数量。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main()
{
   int i, n,N;
   time_t t;
   n=0;
   N = 676;
   
   /* 初始化随机数发生器 */
   srand((unsigned) time(&t));
 
   /* 输出 1 到 50 之间的 N=676个随机数 */
   for( i = 0 ; i < N ; i++ ) {
       n=n+1;
      printf("%d    ", rand() % 50+1);
          if(n%6==0)printf("\n");
   }
   
  return(0);
}

每次数据都不一样,我只取其中一次生成的数据

接下来我想编写一个程序,能够让这些书和数量能够对应起来,
比如第一本书的名字是AABook,对应的数字是31;
第二本书的名字是ABBook,对应的数字是19……

用户输入书的名字,就能找到对应的书的数量。

(可是我刚刚开始学C语言,编不出来┭┮﹏┭┮)
想过用结构体、数组、文件等等,可是每种方法都没有思路,该怎么编?

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-07-16 17:19
    关注

    你定义一个数据结构,包含书的名称和数量信息,然后用你上面的函数来产生书名和数量就可以了

    typedef struct _BOOK
    {
        char name[20];
        int num;
    }BOOK;
    BOOK book[676];
    
    void create()
    {
       int i,j;
      srand((unsigned)time(NULL));
    
      for(i=0;i<=25;i++){
            for(j=0;j<=25;j++)
            {
              sprintf(book[i*26+j].name,"%d%dBook",i+65,j+65);
              book[i*26+j].num = rand() % 50+1;
            }
    }
    int find(char *name)
    {
      for(int i=0;i<676;i++)
      {
        if(strcmp(book[i].name,name) == 0)
          return book[i].num;
      }
      return -1;
    }
    void main()
    {
       create();
      char name[20];
      printf("请输入需要查询数量的书名:");
      scanf("%s",name);
      int num = find(name);
      if(num < 0)
        printf("查无此书\n");
      else
       printf("该书数量为%d\n",num);
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 7月18日
  • 创建了问题 7月16日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分