C语言代码编写求助

功能实现:读取3个电池的电压值,能知道几号电池的电压最高,几号电池最低,几号电池中等。假设已经用scanf()读取了3个电压值,我要得到的结果是1,2,3号电池的电压高低... 功能实现:读取3个电池的电压值,能知道几号电池的电压最高,几号电池最低,几号电池中等。
假设已经用scanf()读取了3个电压值,我要得到的结果是1,2,3号电池的电压高低,求核心代码,望指导~
展开
 我来答
萌小殇10748
2014-08-27 · TA获得超过3233个赞
知道答主
回答量:207
采纳率:0%
帮助的人:70.8万
展开全部
实际上题目就是为了判断输入的正确性而不在于求绝对值,偶觉得还是应该用字符串来检查:
#include<stdio.h>

#define MAX 100

void main()
{
int i, num;
char ch[MAX];
while(1) {
i=0;
num=0;
printf("\n输入数字: ");
gets(ch);
if(ch[0]<'0'||ch[0]>'9') {
if(ch[0]!='-'||(ch[0]=='-'&&!ch[1])) {
printf("\n输入错误!!\n");
continue;
}
}
if(ch[0]!='-')
num+=(ch[0]-48);
i=1;
while(ch[i]>='0'&&ch[i]<='9') {
num=num*10+ch[i]-48;
i++;
}
if(!ch[i]) {
printf("该数的绝对值是: %d\n", num);
return;
}
else {
printf("\n输入错误!!\n");
continue;
}
}
}
满意请采纳。
追问
谢谢您的回答,不过好像不是我想要的,我是用在单片机编程上的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lygszmjj
2014-08-27 · TA获得超过1814个赞
知道小有建树答主
回答量:1192
采纳率:0%
帮助的人:414万
展开全部

设1,2,3号电池的电压分别保存在a,b,c中,max,med,min分别为大中小的序号。

if (a>b)
  { max=1;
    if (b>c) {med=2;min=3;}
       else  {med=3;min=2;}
  }
else
  if (b>c)
    { max=2;
      if (a>c) {med=1;min=3;}
          else  {med=3;min=1;}
     }
    else
     { max=3;
      if (a>b) {med=1;min=2;}
          else   {med=2;min=1;}
       }
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
glb9
2014-08-27
知道答主
回答量:19
采纳率:0%
帮助的人:4.8万
展开全部
#define MaxVoltage(a,b,c) ( a>b?(a>c?a:c):(b>c?b:c) )
#define MidVoltage(a,b,c) ( a>b?(a>c?(b>c?b:c):a):(b>c?(a>c?a:c):b) )
#define MinVoltage(a,b,c) ( a>b?(b>c?c:b):(a>c?c:a) )

//获取高电压,V1,V2,V3是获取到的电压值,保证V1,V2,V3是同一类型数据,如都为float类型
float Max=MaxVoltage(V1,V2,V3);
//获取中电压
float Max=MidVoltage(V1,V2,V3);
//获取低电压
float Max=MinVoltage(V1,V2,V3);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式