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

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日

悬赏问题

  • ¥50 adb连接不到手机是怎么回事?
  • ¥15 vs2022无法联网
  • ¥15 TCP的客户端和服务器的互联
  • ¥15 VB.NET操作免驱摄像头
  • ¥15 笔记本上移动热点开关状态查询
  • ¥85 类鸟群Boids——仿真鸟群避障的相关问题
  • ¥15 CFEDEM自带算例错误,如何解决?
  • ¥15 有没有会使用flac3d软件的家人
  • ¥20 360摄像头无法解绑使用,请教解绑当前账号绑定问题,
  • ¥15 docker实践项目