gpt4 book ai didi

创建一个单词数组,它在 C 中也有数值

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:12 24 4
gpt4 key购买 nike

我正在尝试创建一个程序,要求用户输入给定电阻的 4 种色带颜色,以计算以欧姆为单位的等效电阻。有 12 种可能的颜色。这是一张有助于说明的图片:http://www.researchcell.com/wp-content/uploads/2012/05/resistor-color-code-band.jpg .这就是说,对于这个问题,我只会考虑金带和银带的公差。这是我到目前为止所拥有的。我的老师在没有解释数组的情况下给我布置了这个作业,所以我只能靠自己来完成这个……对于前两个波段,金色和银色是无效颜色。一旦用户输入了正确的颜色,我希望能够去检索数组中输入的相同颜色,然后将其关联到相应的值(如上面链接的图片所示)。输入四种颜色后,最终结果就是电阻值(以欧姆为单位)...非常感谢,我真的非常感谢您的帮助!

#include <stdio.h>
#include <stdlib.h>


int main()
{
char *BANDS_1_2_3[12] = {"Black", "Brown", "Red", "Orange", "Yellow", "Green", "Blue", "Violet", "Gray", "White", "Gold", "Silver"};
int choice;
char band1, band2, band3, band4;

printf("Please choose one of the following options: \n\n1. Calculate the resistance \n2. Help \n3. Exit \n\n");
scanf("%d", &choix);


if(choice==1)
{
printf("Please enter the color of the first band:"); scanf("%s", &band1);

if((band1 == BANDS_1_2_3[11]) && (band1 == BANDS_1_2_3[12]))
{
printf("Invalid color. Please try again:"); scanf("%s", &band1);
}
else if
{

}

最佳答案

几个问题:

  1. 您的输入缓冲区、band1band2 等需要是字符串,而不是字符 - 更改:

    char band1, band2, band3, band4;

到:

    char band[32];

并且只需在您当前使用band1band2 等的地方使用band

  1. 您需要使用strcmp 来比较字符串,因此更改例如

    (band1 == BANDS_1_2_3[11])

到:

    strcmp(band1, BANDS_1_2_3[11]) == 0
  1. 你的逻辑在这里是错误的:

    if((band1 == BANDS_1_2_3[11]) && (band1 == BANDS_1_2_3[12]))

这应该是:

    if(strcmp(band1, BANDS_1_2_3[11]) == 0 || strcmp(band1, BANDS_1_2_3[12]) == 0)
^^^^

注意使用逻辑 OR 而不是逻辑 AND。

关于创建一个单词数组,它在 C 中也有数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26364461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com