首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据电阻器上的颜色计算电阻

根据电阻器上的颜色计算电阻
EN

Stack Overflow用户
提问于 2019-03-20 04:17:23
回答 1查看 72关注 0票数 0
代码语言:javascript
复制
#include<stdio.h>
#include<math.h>
#include<string.h>

int main(){

    int unos;
    char crna[20] = "crna";
    char braon[20] = "braon";
    char crvena[20] = "crvena";
    char narandzasta[20] ="narandzasta";
    char zuta[20] = "zuta";
    char zelena[20] = "zelena";
    char plava[20] = "plava";
    char ljubicasta[20] = "ljubicasta";
    char siva[20] = "siva";
    char bela[20] = "bela";
    char zlatna[20] = "zlatna";
    char srebrna[20] = "srebrna";

    puts("Unesite broj prstenova:");
    scanf("%i", &unos);

    if(unos == 5){

            int c1, c2, c3, m=0, t;
            char unos1[20] = "\0";
            int r;

            puts("Unesi boju 1. prstena:");
            scanf("%s",&unos1);

            if(strcmp(unos1, crna) == 0)
                c1 = 0;
            else if(strcmp(unos1, braon) == 0)
                c1 = 1;
            else if(strcmp(unos1, crvena) == 0)
                c1 = 2;
            else if(strcmp(unos1, narandzasta) == 0)
                c1 = 3;
            else if(strcmp(unos1, zuta) == 0)
                c1 = 4;
            else if(strcmp(unos1, zelena) == 0)
                c1 = 5;
            else if(strcmp(unos1, plava) == 0)
                c1 = 6;
            else if(strcmp(unos1, ljubicasta) == 0)
                c1 = 7;
            else if(strcmp(unos1, siva) == 0)
                c1 = 8;
            else if(strcmp(unos1, bela) == 0)
                c1 = 9;

            char unos2[20] = "\0";

            puts("Unesi boju 2. prstena:");
            scanf("%s", &unos2);

            if(strcmp(unos2, crna) == 0)
                c2 = 0;
            else if(strcmp(unos2, braon) == 0)
                c2 = 1;
            else if(strcmp(unos2, crvena) == 0)
                c2 = 2;
            else if(strcmp(unos2, narandzasta) == 0)
                c2 = 3;
            else if(strcmp(unos2, zuta) == 0)
                c2 = 4;
            else if(strcmp(unos2, zelena) == 0)
                c2 = 5;
            else if(strcmp(unos2, plava) == 0)
                c2 = 6;
            else if(strcmp(unos2, ljubicasta) == 0)
                c2 = 7;
            else if(strcmp(unos2, siva) == 0)
                c2 = 8;
            else if(strcmp(unos2, bela) == 0)
                c2 = 9;

            char unos3[20] = "\0";

            puts("Unesi boju 3. prstena:");
            scanf("%s", &unos3);

            if(strcmp(unos3, crna) == 0)
                c3 = 0;
            else if(strcmp(unos3, braon) == 0)
                c3 = 1;
            else if(strcmp(unos3, crvena) == 0)
                c3 = 2;
            else if(strcmp(unos3, narandzasta) == 0)
                c3 = 3;
            else if(strcmp(unos3, zuta) == 0)
                c3 = 4;
            else if(strcmp(unos3, zelena) == 0)
                c3 = 5;
            else if(strcmp(unos3, plava) == 0)
                c3 = 6;
            else if(strcmp(unos3, ljubicasta) == 0)
                c3 = 7;
            else if(strcmp(unos3, siva) == 0)
                c3 = 8;
            else if(strcmp(unos3, bela) == 0)
                c3 = 9;

            char mnoz[20] = "\0";
            puts("Unesi boju 4. prstena:");
            scanf("%s", &mnoz);

            if(strcmp(mnoz, crna) == 0)
                m = 1;
            else if(strcmp(mnoz, braon))
                m = 10;
            else if(strcmp(mnoz, crvena))
                m = 100;
            else if(strcmp(mnoz, narandzasta))
                m = 1000;
            else if(strcmp(mnoz, zuta))
                m = 10000;
            else if(strcmp(mnoz, zelena))
                m = 100000;
            else if(strcmp(mnoz, plava))
                m = 1000000;
            else if(strcmp(mnoz, ljubicasta))
                m = 10000000;
            else if(strcmp(mnoz, siva))
                m = 100000000;
            //else if(strcmp(mnoz, bela))
                //m = 10*10*10*10*10*10*10*10*10;
            else if(strcmp(mnoz, zlatna))
                m = 0.1;
            else if(strcmp(mnoz, srebrna))
                m = 0.01;

            r = ((c1*100)+(c2*10)+(c3*1)) * m;
            printf("%i,%i",m,r);

    }

    return 0;

}

所以一切都好,但是变量"m“总是10,如果我输入"narandzasta”,它会问"Unesi boju 4.prstena:“它应该是1000。如果需要,我可以将int和chars的名称翻译成英语。我是编程的初学者(我们刚刚开始学习字符串)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-20 04:43:38

您忘记了与0进行比较,以查看字符串是否相等:

代码语言:javascript
复制
 if(strcmp(mnoz, crna) == 0)
            m = 1;
        else if(strcmp(mnoz, braon) == 0)
            m = 10;
        else if(strcmp(mnoz, crvena) == 0)
            m = 100;
        else if(strcmp(mnoz, narandzasta) == 0)
            m = 1000;
        else if(strcmp(mnoz, zuta)==0)
            m = 10000;
        else if(strcmp(mnoz, zelena) == 0)
            m = 100000;
        else if(strcmp(mnoz, plava) == 0)
            m = 1000000;
        else if(strcmp(mnoz, ljubicasta) == 0)
            m = 10000000;
        else if(strcmp(mnoz, siva) == 0)
            m = 100000000;

您将m声明为int,并在最终使用时将其用作double,更正了您的代码:

代码语言:javascript
复制
#include<stdio.h>
#include<math.h>
#include<string.h>

int main(){

    int unos;
    char crna[20] = "crna";
    char braon[20] = "braon";
    char crvena[20] = "crvena";
    char narandzasta[20] ="narandzasta";
    char zuta[20] = "zuta";
    char zelena[20] = "zelena";
    char plava[20] = "plava";
    char ljubicasta[20] = "ljubicasta";
    char siva[20] = "siva";
    char bela[20] = "bela";
    char zlatna[20] = "zlatna";
    char srebrna[20] = "srebrna";

    puts("Unesite broj prstenova:");
    scanf("%i", &unos);

    if(unos == 5){

            int c1, c2, c3, t;
            double m=0;
            char unos1[20] = "\0";
            int r;

            puts("Unesi boju 1. prstena:");
            scanf("%s", unos1);

            if(strcmp(unos1, crna) == 0)
                c1 = 0;
            else if(strcmp(unos1, braon) == 0)
                c1 = 1;
            else if(strcmp(unos1, crvena) == 0)
                c1 = 2;
            else if(strcmp(unos1, narandzasta) == 0)
                c1 = 3;
            else if(strcmp(unos1, zuta) == 0)
                c1 = 4;
            else if(strcmp(unos1, zelena) == 0)
                c1 = 5;
            else if(strcmp(unos1, plava) == 0)
                c1 = 6;
            else if(strcmp(unos1, ljubicasta) == 0)
                c1 = 7;
            else if(strcmp(unos1, siva) == 0)
                c1 = 8;
            else if(strcmp(unos1, bela) == 0)
                c1 = 9;

            char unos2[20] = "\0";

            puts("Unesi boju 2. prstena:");
            scanf("%s", unos2);

            if(strcmp(unos2, crna) == 0)
                c2 = 0;
            else if(strcmp(unos2, braon) == 0)
                c2 = 1;
            else if(strcmp(unos2, crvena) == 0)
                c2 = 2;
            else if(strcmp(unos2, narandzasta) == 0)
                c2 = 3;
            else if(strcmp(unos2, zuta) == 0)
                c2 = 4;
            else if(strcmp(unos2, zelena) == 0)
                c2 = 5;
            else if(strcmp(unos2, plava) == 0)
                c2 = 6;
            else if(strcmp(unos2, ljubicasta) == 0)
                c2 = 7;
            else if(strcmp(unos2, siva) == 0)
                c2 = 8;
            else if(strcmp(unos2, bela) == 0)
                c2 = 9;

            char unos3[20] = "\0";

            puts("Unesi boju 3. prstena:");
            scanf("%s", unos3);

            if(strcmp(unos3, crna) == 0)
                c3 = 0;
            else if(strcmp(unos3, braon) == 0)
                c3 = 1;
            else if(strcmp(unos3, crvena) == 0)
                c3 = 2;
            else if(strcmp(unos3, narandzasta) == 0)
                c3 = 3;
            else if(strcmp(unos3, zuta) == 0)
                c3 = 4;
            else if(strcmp(unos3, zelena) == 0)
                c3 = 5;
            else if(strcmp(unos3, plava) == 0)
                c3 = 6;
            else if(strcmp(unos3, ljubicasta) == 0)
                c3 = 7;
            else if(strcmp(unos3, siva) == 0)
                c3 = 8;
            else if(strcmp(unos3, bela) == 0)
                c3 = 9;

            char mnoz[20] = "\0";
            puts("Unesi boju 4. prstena:");
            scanf("%s", mnoz);

            if(strcmp(mnoz, crna) == 0)
                m = 1;
            else if(strcmp(mnoz, braon) == 0)
                m = 10;
            else if(strcmp(mnoz, crvena) == 0)
                m = 100;
            else if(strcmp(mnoz, narandzasta) == 0)
                m = 1000;
            else if(strcmp(mnoz, zuta) == 0)
                m = 10000;
            else if(strcmp(mnoz, zelena) == 0)
                m = 100000;
            else if(strcmp(mnoz, plava) == 0)
                m = 1000000;
            else if(strcmp(mnoz, ljubicasta) == 0)
                m = 10000000;
            else if(strcmp(mnoz, siva) == 0)
                m = 100000000;
            //else if(strcmp(mnoz, bela))
                //m = 10*10*10*10*10*10*10*10*10;
            else if(strcmp(mnoz, zlatna))
                m = 0.1;
            else if(strcmp(mnoz, srebrna))
                m = 0.01;

            r = ((c1*100)+(c2*10)+(c3*1)) * m;
            printf("%lf,%i",m,r);

    }

    return 0;

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55249321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档