c中的区域程序有问题

时间:2016-06-02 20:36:00

标签: c math area

所以我一直在研究一个可以找到形状区域的程序 我在编译器上遇到多个错误,说我正在比较 一个指针和一个整数,但我不是......至少我不认为我是。该程序运行,但是当我输入我的字符串时,它会崩溃

这是我的代码

#include <stdio.h>
#include <math.h>
int main(void){

char str_1;

printf("Hello! This program will find the area of selceted figrues!\n");
printf("What is your shape? The only shapes that work are Triangles,\
Rectangles, and Circles\n");

scanf("%c", str_1);
    do {
        printf("That is an invalid input the only shapes that work are Triangles, \
        Rectangles, and Circles\n");
        scanf("%c", str_1);
    } 
    while(str_1 != "circle", "rectangle", "triangle");

    if (str_1 == "circle") {
        printf("What is the radius?\n");
        scanf("%i");
    }
}

1 个答案:

答案 0 :(得分:0)

您应该使用public static void main(String[] args) { byte b; b = (byte) (11 >> 1 << 6) >> 5; System.out.println(b); // 2 } char *作为字符串并重新构建您的计划流程:

char[]

测试

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

void msg() {
    printf("What is your shape? The only shapes that work are Triangles,\
Rectangles, and Circles\n");
}

int main(void) {
    char *str_1 = malloc(32);
    float f, f2, f3;
    printf("Hello! This program will find the area of selected figures!\n");
    msg();
    scanf("%s", str_1);
    for (; ;) {
        if (strcmp(str_1, "circle") && strcmp(str_1, "rectangle") && strcmp(str_1, "triangle")) {
            printf("That is an invalid input the only shapes that work are Triangles, \
        Rectangles, and Circles\n");
            msg();
            scanf("%s", str_1);
        }
        if (!strcmp(str_1, "circle")) {
            printf("What is the radius?\n");
            scanf("%f", &f);
            printf("The area is %f\n", f * M_PI * M_PI);
            msg();
            scanf("%s", str_1);
            continue;
        }
        else if (!strcmp(str_1, "rectangle")) {
            printf("What is the length?\n");
            scanf("%f2", &f2);
            printf("What is the height?\n");
            scanf("%f3", &f3);
            printf("The area is %f\n", f2*f3);
            msg();
            scanf("%s", str_1);
            continue;
        }
    }
    free(str_1); /* unreachable */
}