- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
#include <stdio.h>
#include <stdlib.h>
struct PCSpec{
int ComputerID;
char ComputerName[50];
float Price;
};
void PrintAll(int count,struct PCSpec Computer[100]);
int InputData(int count,struct PCSpec Computer[100]);
void Search(int count,struct PCSpec Computer[100]);
void SearchID(int count,struct PCSpec Computer[100]);
void SearchNAME(int count,struct PCSpec Computer[100]);
void MainMenu(int count,struct PCSpec Computer[100]);
void Option1Menu();
void Option2Menu();
void PrintSelective(struct PCSpec Computer[100]);
main()
{
int count;
struct PCSpec Computer[100];
printf("Please enter the Number Of Computer (Max is 100) ");
scanf("%d",&count);
system("cls");
Option1Menu();
MainMenu(count,Computer);
}
int InputData(int count,struct PCSpec Computer[100])
{
int i;
for(i=0;i<count;i++)
{
printf("Enter the ComputerID = ");
scanf("%d", &Computer[i].ComputerID);
printf("Enter the ComputerName, Maximum 50 Characters = ");
scanf(" %s",Computer[i].ComputerName);
}
printf("Data was SUCCESSFULLY recorded!");
}
void MainMenu(int count,struct PCSpec Computer[100])
{
while (1)
{
int option;
printf("\nEnter your choice : ");
scanf("%d", &option);
switch (option)
{
case 1:
system("cls");
InputData(count,Computer);
system("cls");
Option1Menu();
break;
case 2:
system("cls");
PrintAll(count,Computer);
Option1Menu();
break;
case 3:
system("cls");
Search(count,Computer);
case 4:
exit(0);
}
}
}
void Search(int count,struct PCSpec Computer[100])
{
int Option;
Option2Menu();
while(1)
{
printf("\nEnter your choice : ");
scanf("%d",&Option);
switch(Option)
{
case 1:
system("cls");
SearchID(count,Computer);
Option2Menu();
break;
case 2:
system("cls");
SearchNAME(count,Computer);
Option2Menu();
break;
case 3:
system("cls");
MainMenu(count,Computer);
case 4:
exit(1);
}
}
}
抱歉代码太长,下面的部分是我遇到问题的部分。我能够成功搜索,但无法显示搜索到的结构。我最初的计划是搜索 ComputerID,如果找到,我希望它也显示 ComputerName。
如果找到 ID,我想要得到的输出。计算机 ID = 21计算机名称=桌面
void SearchID(int count,struct PCSpec Computer[100])
{
int i,id;
printf("Please Enter Computer ID ");
scanf("%d",&id);
for(i=0;i<count;i++)
{
if(Computer[i].ComputerID == id)
{
printf("%d is found at %d",id,i);
//PrintSelective(Computer);
break;
}
}
if( i == count )
printf("Unable to locate ComputerID\n");
}
对于这一部分,我的意图与上一部分相同,但是这次我想搜索ComputerName,发现它也会打印ComputerID。
现在我面临的问题是,找不到我输入的输入。
void SearchNAME(int count,struct PCSpec Computer[100])
{
int j;
char NAME;
printf("Warning CASE Senstitive!\n");
printf("Please Enter Computer Name ");
scanf("%s",&NAME);
for(j=0;j<count;j++)
{
if(Computer[j].ComputerName == "NAME")
{
printf("%s is found at %d",NAME,j);
//PrintSelective(Computer);
break;
}
}
if( j == count )
printf("Unable to locate ComputerID\n");
}
其余部分几乎是声明
void PrintAll(int count,struct PCSpec Computer[100])
{
int j;
for(j=0;j<count;j++)
{
printf("Computer Package %d\n", j);
printf("Computer ID = \t\t%d\n",Computer[j].ComputerID);
printf("Computer Name = \t%s\n",Computer[j].ComputerName);
}
}
void PrintSelective(struct PCSpec Computer[100])
{
int i;
printf("Computer Package %d\n", i);
printf("Computer ID = \t\t%d\n",Computer[i].ComputerID);
printf("Computer Name = \t%s\n",Computer[i].ComputerName);
}
void Option1Menu()
{
printf("\n1] Create a Record\n");
printf("2] Display Records\n");
printf("3] Search a Record\n");
printf("4] Exit");
}
void Option2Menu()
{
printf("\n1] Search using ComputerID\n");
printf("2] Search using ComputerNAME\n");
printf("3] Back to Main Menu\n");
printf("4] Exit the Program\n");
}
对我之前的帖子感到抱歉,我的问题不清楚,因为我还是 C 新手,感谢所有对我的编码的反馈!另一件事是,你们使用哪个编译器?或 C 标准,以便其他人在编译我编写的代码时不会出现任何问题。
最佳答案
三件事:
使用scanf("%s",&NAME)
,您可以将字符串读入单个字符。非空字符串始终需要至少两个字符:至少一个用于字符串内容加上一个字符串终止符。 49 个字符的字符串需要 50 个 char
的数组。
"NAME"
是一个文字字符串,而不是变量 NAME
使用 Computer[j].ComputerName == "NAME"
您正在比较两个指针。使用 Computer[j].ComputerName == NAME
您将比较指针与单个 char
值。如果将 NAME
更改为数组,那么您将再次比较两个指针。要比较字符串,您需要使用 strcmp
.
关于c - 如何在结构内搜索并显示它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45052763/
我目前正在尝试基于哈希表构建字典。逻辑是:有一个名为 HashTable 的结构,其中包含以下内容: HashFunc HashFunc; PrintFunc PrintEntry; CompareF
如果我有一个指向结构/对象的指针,并且该结构/对象包含另外两个指向其他对象的指针,并且我想删除“包含这两个指针的对象而不破坏它所持有的指针”——我该怎么做这样做吗? 指向对象 A 的指针(包含指向对象
像这样的代码 package main import "fmt" type Hello struct { ID int Raw string } type World []*Hell
我有一个采用以下格式的 CSV: Module, Topic, Sub-topic 它需要能够导入到具有以下格式的 MySQL 数据库中: CREATE TABLE `modules` ( `id
通常我使用类似的东西 copy((uint8_t*)&POD, (uint8_t*)(&POD + 1 ), back_inserter(rawData)); copy((uint8_t*)&PODV
错误 : 联合只能在具有兼容列类型的表上执行。 结构(层:字符串,skyward_number:字符串,skyward_points:字符串)<> 结构(skyward_number:字符串,层:字符
我有一个指向结构的指针数组,我正在尝试使用它们进行 while 循环。我对如何准确初始化它并不完全有信心,但我一直这样做: Entry *newEntry = malloc(sizeof(Entry)
我正在学习 C,我的问题可能很愚蠢,但我很困惑。在这样的函数中: int afunction(somevariables) { if (someconditions)
我现在正在做一项编程作业,我并没有真正完全掌握链接,因为我们还没有涉及它。但是我觉得我需要它来做我想做的事情,因为数组还不够 我创建了一个结构,如下 struct node { float coef;
给定以下代码片段: #include #include #define MAX_SIZE 15 typedef struct{ int touchdowns; int intercepti
struct contact list[3]; int checknullarray() { for(int x=0;x<10;x++) { if(strlen(con
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Empty “for” loop in Facebook ajax what does AJAX call
我刚刚在反射器中浏览了一个文件,并在结构构造函数中看到了这个: this = new Binder.SyntaxNodeOrToken(); 我以前从未见过该术语。有人能解释一下这个赋值在 C# 中的
我经常使用字符串常量,例如: DICT_KEY1 = 'DICT_KEY1' DICT_KEY2 = 'DICT_KEY2' ... 很多时候我不介意实际的文字是什么,只要它们是独一无二的并且对人类读
我是 C 的新手,我不明白为什么下面的代码不起作用: typedef struct{ uint8_t a; uint8_t* b; } test_struct; test_struct
您能否制作一个行为类似于内置类之一的结构,您可以在其中直接分配值而无需调用属性? 前任: RoundedDouble count; count = 5; 而不是使用 RoundedDouble cou
这是我的代码: #include typedef struct { const char *description; float value; int age; } swag
在创建嵌套列表时,我认为 R 具有对列表元素有用的命名结构。我有一个列表列表,并希望应用包含在任何列表中的每个向量的函数。 lapply这样做但随后剥离了列表的命名结构。我该怎么办 lapply嵌套列
我正在做一个用于学习目的的个人组织者,我从来没有使用过 XML,所以我不确定我的解决方案是否是最好的。这是我附带的 XML 文件的基本结构:
我是新来的 nosql概念,所以当我开始学习时 PouchDB ,我找到了这个转换表。我的困惑是,如何PouchDB如果可以说我有多个表,是否意味着我需要创建多个数据库?因为根据我在 pouchdb
我是一名优秀的程序员,十分优秀!