我正在学习C并遇到一些麻烦

时间:2019-11-03 10:15:37

标签: c

抱歉,如果我很傻,为什么我的代码在printf("Please select an operator. ie +,-,* ");之后无法运行

#include<stdio.h>

int main()
{
  char op;
  int a11,a12,a21,a22;
  int b11,b12,b21,b22;
  int m11,m12,m21,m22;

  printf("Matrix Calculator!\n");
    printf("Please enter the values for a11\n");
    scanf("%d",&a11);
    printf("Please enter the values for a12\n");
    scanf("%d",&a12);
    printf("Please enter the values for a21\n");
    scanf("%d",&a21);
    printf("Please enter the values for a22\n");
    scanf("%d",&a22);
    printf("Please enter the values for b11\n");
    scanf("%d",&b11);
    printf("Please enter the values for b12\n");
    scanf("%d",&b12);
    printf("Please enter the values for b21\n");
    scanf("%d",&b21);
    printf("Please enter the values for b22\n");
    scanf("%d",&b22);
    printf("Please select an operator. ie +,-,* ");
    scanf("%c",&op);
    switch(op){
      case ('*'):
        m11 = a11*b11+a12*b21;
        m12 = a11*b12+a12*b22;
        m21 = a21*b11+a22*b21;
        m22 = a21*b12+a22*b22;
        printf("Your m11 = %d\nYour m12 = %d\nYour m21 = %d\nYour m22 = %d",m11,m12,m21,m22);
        printf("\a");
        break;
      case ('+'):
        m11 = a11+b11;
        m12 = a12+b12;
        m21 = a21+b21;
        m22 = a22+b22;
        printf("Your m11 = %d\nYour m12 = %d\nYour m21 = %d\nYour m22 = %d",m11,m12,m21,m22);
      case ('-'):
        m11 = a11-b11;
        m12 = a12-b12;
        m21 = a21-b21;
        m22 = a22-b22;
        printf("Your m11 = %d\nYour m12 = %d\nYour m21 = %d\nYour m22 = %d",m11,m12,m21,m22);
        break;
    return 0;
    }


}

1 个答案:

答案 0 :(得分:0)

scanf("%c", &op);-> scanf(" %c", &op);

您需要在scanf()格式的占位符中的%c之前添加空格。