一道C语言作业题,帮忙~

cshadow 2006-11-02 02:20:57
输入4个互不相等的实型数,输出其中最大一个.
要求
(1):实数的允许范围为-10^6到10^6,若输入有越界,则给出出错信息.
(2):程序要有连续处理的能力,当且仅当输出的4个数全为零时,程序完成.
...全文
872 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
soldierluo 2006-11-03
  • 打赏
  • 举报
回复
这题不难吧

数就用字符数组存储啦,然后一个一个字符的比较就知道大小了
lin6234123456 2006-11-03
  • 打赏
  • 举报
回复
输入4个互不相等的实型数,互不相等!!
Chris_Joo 2006-11-03
  • 打赏
  • 举报
回复
你抄作业哦LZ
doudouHuY 2006-11-03
  • 打赏
  • 举报
回复
判断double类型数是否为0不能直接比较
wang430903 2006-11-03
  • 打赏
  • 举报
回复
#include<stdio.h>
float max(float a,float b,float c,float d)
{
if(a<b)a=b;
if(a<c)a=c;
if(a<d)a=d;
return a;
}
int main()
{
float input1,input2,input3,input4;
while(scanf("%f%f%f%f",&input1,&input2,&input3,&input4))
{
if(input1==0.0&&input2==0.0&&input3==0.0&&input4==0.0)
{return 1;}
if(input1==input2||input1==input3||input1==input4||input2==input3||input2==input4||input3==input4)
{printf("error!\n");continue;}
printf("%f\n",max(input1,input2,input3,input4));
printf("pleass input:\n");
}
printf("error:\n");
return 0;
}
jiashao606 2006-11-03
  • 打赏
  • 举报
回复
不过我上面写的那个程序要输5个数字才行
不知道怎么解决 大家帮忙分析一下
就是要输1 2 3 4 5 最后一个数可以是随意的
jiashao606 2006-11-03
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include "conio.h"
#define max(x,y) x>y?x:y
#define SIZE 20
#define ncount 4

int new_max(int s[],int n);

int main(int argc, char* argv[])
{
int i,result,flag;
int str[SIZE];
flag=i=0;
do
{
scanf("%d ",&str[i]);
if(str[i]==0)
{
flag++;
}
i++;
}
while(i<=3);
if(flag==4)
printf("Error");
else
{
result=new_max(str,ncount);
printf("%d",result);
}
return 0;
}

int new_max(int s[],int n)
{
int i,j,n_max;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
n_max=max(s[i],s[j]);
}
}
return n_max;
}
jiashao606 2006-11-03
  • 打赏
  • 举报
回复
speaking88888888(十六夜月华) ( ) 信誉:99 Blog

=====================================================
while 里面哪有那么长的东西,这样写可不行
csyangshu 2006-11-03
  • 打赏
  • 举报
回复
天。。这种题目都有人帮着做了


CSDN怎么了?
carbonic 2006-11-03
  • 打赏
  • 举报
回复
我笨笨,不过这样写更好看懂。^_^
-------------------------
#include <stdio.h>
#include <stdlib.h>
#define MIN_DATA -10*10*10*10*10*10
#define MAX_DATA 10*10*10*10*10*10

void main()
{
int a,b,c,d;
printf("please input the first number: ");
scanf("%d",&a);
printf("\nplease input the second number: ");
scanf("%ld",&b);
printf("\nplease input the third number: ");
scanf("%ld",&c);
printf("\nplease input the forth number: ");
scanf("%ld",&d);
printf("the number is %d %d %d %d\n",a,b,c,d);

if((a==0)&&(b==0)&&(c==0)&&(d==0))
{
exit(-1);
}
else if(((a<MIN_DATA)||(a>MAX_DATA))||((a<MIN_DATA)||(a>MAX_DATA))
||((a<MIN_DATA)||(a>MAX_DATA))||((a<MIN_DATA)||(a>MAX_DATA)))
{
printf("ERROR!!!\n");
}
else
{
int m = (a-b)>0?a:b;
int n = (c-d)>0?c:d;
int val = (m-n)>0?m:n;
printf("the max value is %d\n",val);
}
}
CruelYoung123 2006-11-02
  • 打赏
  • 举报
回复
..............
morphymorphy 2006-11-02
  • 打赏
  • 举报
回复
分多94吸引人。。。step...
zzy大头鬼 2006-11-02
  • 打赏
  • 举报
回复
哈哈,看懂了```
改了一下代码`
/* Note:Your choice is C IDE */
#include "stdio.h"
#include <stdlib.h>
#include <conio.h>
main()
{
int number,i;
double a=1.0e6;
int max=-3254;
aa:
for(i=1;i<5;i++)
{
printf("please enter number %d:",i);
scanf("%d",&number);
if(number>a||number<-a) //设定范围
{
printf("Input is out of range.\n");
goto aa; //跳回去,大家都说用GOTO不好,呵呵``可能我还没领悟吧~
}
if(number>max)//判断最大值
max=number;
}
if(max==0)//如果最大值为0,也就是说4个值都为0就结束程序
exit (0);
printf("max number is:%d",max);
}
这样,我没判断如果4个0就结束程序,我判断最大值为0就结束,呵呵`效果一样的`
zzy大头鬼 2006-11-02
  • 打赏
  • 举报
回复
第二个条件不是很明白`~没空懂``所以没实现,不好意思啊`
zzy大头鬼 2006-11-02
  • 打赏
  • 举报
回复
小弟不才,这是小弟的代码~win2000+Turbo c下编译的`~
#include "stdio.h"
main()
{
int number,i;
double a=1.0e6;
int max=-3254;
aa:
for(i=1;i<5;i++)
{
printf("please enter number %d:",i);
scanf("%d",&number);
if(number>a||number<-a)
{
printf("Input is out of range.\n");
goto aa;
}
if(number>max)
max=number;
}
printf("max number is:%d",max);
}
测试可以实现~不知道楼主满不满意~
laiwusheng 2006-11-02
  • 打赏
  • 举报
回复
更正:
const float EPSINON = 0.00001;
#define UNEQ(x) !(x >= - EPSINON)&&(x <= EPSINON))
if(UNEQ(fa[0])&&UNEQ(fa[1])&&UNEQ(fa[2])&&UNEQ(fa[3]))
return 0;

poemdreamer 2006-11-02
  • 打赏
  • 举报
回复
如果是真的想学习的话,应该自己先写, 不是简单的想要代码:

float , double 能有以下的判断吗?
if(fa[0]==0&&fa[1]==0&&fa[2]==0&&fa[3]==0)
return 0;

while(!(reals[0] == reals[1] && reals[2] == reals[3] && reals[1] == reals[2] && reals[0] == 0));


if((a==0) && (b==0) && (c==0) && (d==0))
break;
laiwusheng 2006-11-02
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
#define EPS 1E6
int sort_function( const void *a, const void *b)
{
return( strcmp(a,b) );
}
int main()
{
float fa[4];
int i,j;
while(1){
printf("Please input 4 with each other unequal real figures:\n");
for(i=0;i<4;i++){
scanf("%f",fa[i]);
for(j=0;j<i;j++)
if(fa[i]==fa[j]||(fa[i]<-EPS&&fa[i]>EPS){
i--;
printf("Error!请重新输入:");
}
}
if(fa[0]==0&&fa[1]==0&&fa[2]==0&&fa[3]==0)
return 0;
qsort((void *)fa, 4, sizeof(fa[0],sort_function);
printf("1:%f\n",fa[4]);
}//while
return 0;
}
Bird_fro 2006-11-02
  • 打赏
  • 举报
回复
我用java写了一个
楼主看用不用得上,C学得早,都忘得差不多了
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class Test1
{
public void MaxValue(double[] b)
{
double max = 0;
for(int i = 0; i < b.length; i++)
{
if(b[i] > max)
{
max = b[i];
}
}
System.out.println(max);
}

public static void main(String[] args) throws IOException
{
Test1 t1 = new Test1();
InputStreamReader in = new InputStreamReader(System.in);
BufferedReader dr = new BufferedReader(in);
double[] a = new double[4];
String c = "Y";
while(c.equals("Y"))
{
for(int i = 0;i < a.length; i++)
{
a[i] = Double.parseDouble(dr.readLine());
if(a[i] > 1e+6 || a[i] < -1e+6)
{
System.out.println("Input data error,Please input again(-1e^6--1e^6)!!!");
a[i] = Double.parseDouble(dr.readLine());
}
}
int j = 0;
for(int i = 0; i < a.length; i++)
{
if(a[i] == 0.0)
{
j++;
}
}
if(j == 4)
{
System.out.println("Program End!!!");
System.exit(0);
}
t1.MaxValue(a);
System.out.println("Continue----Press Y\nexit-------Press N");
c = String.valueOf(new BufferedReader(new InputStreamReader(System.in)).readLine());
}
}
}
system_gong 2006-11-02
  • 打赏
  • 举报
回复
都是小强啊!呵呵
加载更多回复(4)

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧