搜索
查看: 311|回复: 2
打印 上一主题 下一主题

请大神指导错在哪里!!!!!!!!!!

[复制链接]
跳转到指定楼层
楼主
 楼主| 发表于 2019-11-24 20:09:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main();
  4. {
  5.     int a[2],s,n;
  6.     bool f[4];
  7.     f[1]=false;
  8.     f[2]=false;
  9.     f[3]=false;
  10.     f[0]=false;
  11.     scanf("%c%c",&a[0],&a[1]);
  12.     scanf("%c",n);
  13.     switch(n)
  14.     {
  15.     case n=1:f[0]=true;break;
  16.     case n=2:f[1]=true;break;
  17.     case n=3:f[2]=true;break;
  18.     case n=4:f[3]=true;break;
  19.     default:printf("???");
  20.     }
  21.     if(f[0]==true)s=a+b;
  22.     if(f[1]==true)s=a-b;
  23.     if(f[2]==true)s=a*b;
  24.     if(f[3]==true)s=a/b;
  25.     printf("%f",s);
  26.     system("pause");
  27.     return 0;
  28. }
复制代码

沙发
发表于 2020-5-15 12:52:32 | 只看该作者
int main()后面不要加分号!!!
switch的格式不是这样的!!!
是这样
switch(变量1)
{
    case 变量1的值:语句;break;
    ........
    default:语句;break;
}
所以直接case 1:......break;(其余的就不一一举例)就行了
还有在C语言里不能直接用布尔变量,要加头文件:#include<stdbool.h>
%c是读取/输出字符(char型)的,数组a是int类型,要用%d
而且s也是int型的,不能用%f,%f是输出/读取单精准浮点型(float型)的,所以f要定义成float型

正确代码如下:
#include <stdio.h>
#include <stdlib.h>
int main();
{
    int a[2],n;
    float s;
    bool f[4];
    f[1]=false;
    f[2]=false;
    f[3]=false;
    f[0]=false;
    scanf("%d%d",&a[0],&a[1]);
    scanf("%d",n);
    switch(n)
    {
    case 1:f[0]=true;break;
    case 2:f[1]=true;break;
    case 3:f[2]=true;break;
    case 4:f[3]=true;break;
    default:printf("???");
    }
    if(f[0]==true)s=a+b;
    if(f[1]==true)s=a-b;
    if(f[2]==true)s=a*b;
    if(f[3]==true)s=a/b;
    printf("%f",s);
    system("pause");
    return 0;
}

这些都是基础语法,多看看书
板凳
发表于 2020-5-15 12:53:12 | 只看该作者
多注意语法和类型

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表