搜索
查看: 1224|回复: 17
打印 上一主题 下一主题

为什么编译成功确总运行出错啦

[复制链接]
跳转到指定楼层
楼主
发表于 2014-7-30 21:41:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
int main()

{
    double number1=0.0;

double number2=0.0;

char operation=0;

printf("\nenter the calculation\n");

scanf("lf% %c %lf",&number1,&operation,&number2);

switch(operation)

{case'+':
    printf("=%lf\n",number1+number2);
    break;


case'-':
    printf("=%lf\n",number1-number2);
    break;


case'*':
    printf("=%lf\n",number1*number2);
    break;

case'/':

    if (number2==0)
    printf("\n\n\aDivision by  zero error!\n");

else   
    printf("=%lf\n",number1/number2);
    break;


case'%':
    if ((long)number2==0)
    printf("\n\n\aDivision by  zero error!\n");

else
    printf("=%ld\n",(long)number1%(long)number2);
    break;


default:
    printf("\n\naIllegal operation!\n");
    break;
    }
       
       
system("pause");
        return 0;
}
运行一直输出aIllegal operation!

最佳答案

查看完整内容

"lf% %c %lf" %的位置错了 "%lf %c %lf"
沙发
发表于 2014-7-30 21:41:21 | 只看该作者
小金伙子 发表于 2014-7-31 14:33
ros姐姐按你说的方式输过啦 还是只输出default的部分

"lf% %c %lf"

%的位置错了

"%lf %c %lf"
板凳
发表于 2014-7-30 22:23:31 | 只看该作者
本帖最后由 rosynirvana 于 2014-7-30 22:33 编辑

scanf("lf% %c %lf",&number1,&operation,&number2);

你的输入必须遵循这里的格式

注意%c两边的空格,你的输入也必须在符号两边有空白字符
地板
 楼主| 发表于 2014-7-31 14:33:47 | 只看该作者
rosynirvana 发表于 2014-7-30 22:23
scanf("lf% %c %lf",&number1,&operation,&number2);

你的输入必须遵循这里的格式

ros姐姐按你说的方式输过啦 还是只输出default的部分
5#
 楼主| 发表于 2014-7-31 16:00:52 | 只看该作者
谢谢,我是一开始用linux破解无线的可是老不成功,后来了解下就开始玩C啦
6#
发表于 2014-7-31 16:25:00 | 只看该作者
小金伙子 发表于 2014-7-31 16:00
谢谢,我是一开始用linux破解无线的可是老不成功,后来了解下就开始玩C啦

你又是看了什么过时的东西

破解无线说的是WEP加密的,现在个人路由默认都不用WEP了
7#
 楼主| 发表于 2014-7-31 19:41:07 | 只看该作者
求ros姐普及下呗 wpa不能破解吗?
8#
发表于 2014-7-31 21:08:03 | 只看该作者
小金伙子 发表于 2014-7-31 19:41
求ros姐普及下呗 wpa不能破解吗?

只能穷举,没有意义
9#
 楼主| 发表于 2014-7-31 22:05:34 | 只看该作者
rosynirvana 发表于 2014-7-31 21:08
只能穷举,没有意义

#include <stdio.h>
#include <stdlib.h>
int main()
{   
    int j=0;
    int count=5;
    double values[5]={'values[0]','values[1]','values[2]','values[3]','values[4]'};
   
    float sum=0.0f;
   
    for(;j<count;j=j+1)
   
    {
    printf("输入你要存入数组的值:\n");
     scanf("%lf",&values[j]);
     
     sum=sum+1/values[j];
   }
    printf("%.2f",sum);
   
   
    system("pause");
   
        return 0;
}
这是自己写的代码 求 键入数组中的5个数的倒数的和 可是总提示printf("%.2f",sum);这出错,磨了半个小时啦真心头疼
10#
 楼主| 发表于 2014-7-31 22:09:16 | 只看该作者
#include <stdio.h>
#include <stdlib.h>
int main()
{   
    int j=0;
    int count=5;
    double values[5]={'values[0]','values[1]','values[2]','values[3]','values[4]'};
   
    float sum=0.0f;
   
    for(;j<count;j=j+1)
   
    {
    printf("输入你要存入数组的值:\n");
     scanf("%lf",&values[j]);
     
     sum=sum+1/values[j];
     printf("%.2f",sum);
   }
   
   
   
    system("pause");
   
        return 0;
}
这样改能输出真心觉得好别扭啊
11#
 楼主| 发表于 2014-7-31 22:11:40 | 只看该作者
谢谢 问题自己已解决 第一次发的代码可以成功运行,我把啊哈c关了重开下然后编译既然OK啦
12#
发表于 2014-7-31 22:12:55 | 只看该作者
double values[5]={'values[0]','values[1]','values[2]','values[3]','values[4]'};

这是啥?
13#
 楼主| 发表于 2014-8-1 09:51:21 | 只看该作者
rosynirvana 发表于 2014-7-31 22:12
double values[5]={'values[0]','values[1]','values[2]','values[3]','values[4]'};

这是啥?

这是我定义的数组的5个变量啊
14#
发表于 2014-8-1 09:58:37 | 只看该作者
小金伙子 发表于 2014-8-1 09:51
这是我定义的数组的5个变量啊

'values[0]'是什么考虑过吗?

' '里面只能放一个字符
15#
发表于 2014-8-1 14:00:32 来自手机 | 只看该作者
是啊,单引号是至一个字符
在c语言中,单引号和双引号是不一样的

Fp=fopen("my.txt","r");
虽然后面只传入一个字符,但是也要使用双引号,
因为也可能是
r  
来自: 微社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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