佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1719|回复: 32

那位大大可以帮我看看这题目(急用)

[复制链接]
发表于 1-7-2008 01:42 AM | 显示全部楼层 |阅读模式
那个大大可以帮我看看这题目(急用)这是我的学校的 FINAL ASSIGNMENT 就要交了,可以麻烦各位大大帮我看看么?求。。。

  • Value Compare
    • Using function below

i.
Function ReadEntries – Ask user about total number of entries. Then ask user input the values and store to an array


ii.
Function Compare – compare the first parameter and second parameter, either first parameter is greater than second parameter, or first parameter is less than second parameter, or first parameter is equal with second parameter


iii.
Function Differences – calculate the differences between the first parameter and second parameter

           
          这个是它的output ::
Enter total number of entries : 6

Enter value : 4
Enter value : 3
Enter value : 2
Enter value : 2
Enter value : 9
Enter value : 6

4 is greater than 3
Difference between values above is 1

3 is greater than 2
Difference between values above is 1

2 is equal 2

2 is less than 9
Difference between values above is 7

9 is greater than 6
Difference between values above is 3

帮我debug。。。
#!/bin/bash
function readentries() {
declare -a marks
read -p "Enter total number of entries : " total
for ((a=0; a< $total; a++))
do
read -p "Enter value : " marks[$a]
done
}
readentries

function Compare() {
if [[ $1 -eq $2 ]]
then
echo $1 "equal to" $2
elif [[ $1 -gt $2 ]]
then
echo $1 "is greater than" $2
else
echo $1 "is less than" $2
fi
}
#The Compare Function call
Compare $1 $2

function Differences() {
((Marks=$1 - $2))
echo "Difference between values above is : " $Marks
}
Differences


[ 本帖最后由 lonely_boy 于 2-7-2008 06:40 PM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

发表于 1-7-2008 01:57 AM | 显示全部楼层

请问你要让别人帮你看什么?

你提供的资料,构不成一个完整的系统。
回复

使用道具 举报

 楼主| 发表于 1-7-2008 02:05 AM | 显示全部楼层
要他的input...(Programming来得)
回复

使用道具 举报

发表于 1-7-2008 11:18 AM | 显示全部楼层
原帖由 lonely_boy 于 1-7-2008 02:05 AM 发表
要他的input...(Programming来得)


你可以出来工作了...不要浪费父母的血汗钱...   

还有,真的替你父母感到难过...
回复

使用道具 举报

 楼主| 发表于 1-7-2008 12:45 PM | 显示全部楼层
就是因为不会才厚着面来问你们的,你可以不要那么过分吗?
回复

使用道具 举报

发表于 1-7-2008 01:07 PM | 显示全部楼层
原帖由 PeachHuman 于 1-7-2008 11:18 AM 发表


你可以出来工作了...不要浪费父母的血汗钱...   

还有,真的替你父母感到难过...

有必要讲到这样??
回复

使用道具 举报

Follow Us
发表于 1-7-2008 01:37 PM | 显示全部楼层
原帖由 lonely_boy 于 1-7-2008 12:45 PM 发表
就是因为不会才厚着面来问你们的,你可以不要那么过分吗?


你是不会才来问吗?我看是想直接在这里拿答案吧...

原帖由 AhTik 于 1-7-2008 01:07 PM 发表

有必要讲到这样??


如果你的孩子只会花你的钱,给他读书的机会也不好好珍惜,你会怎么想?

[ 本帖最后由 PeachHuman 于 1-7-2008 01:38 PM 编辑 ]
回复

使用道具 举报

发表于 1-7-2008 05:11 PM | 显示全部楼层
原帖由 PeachHuman 于 1-7-2008 01:37 PM 发表


你是不会才来问吗?我看是想直接在这里拿答案吧...



如果你的孩子只会花你的钱,给他读书的机会也不好好珍惜,你会怎么想?



虽然我看到这个帖子的时候,也很想问你所问的那个问题,可是想想又觉得做人又何必做得那么绝?
我觉得如果一个人不会想,那么他也许缺乏指引,有很多种构成的因素,无论如何,都要仔细观察再说。


Lonely_Boy,你的问题肯定不完整,我再说一遍,这样的内容,我能肯定地给你一个结论:不知所云。

如果你要求助,请把问题问好,谢谢。
(当然,可能我太笨,看不明白
回复

使用道具 举报


ADVERTISEMENT

发表于 1-7-2008 06:20 PM | 显示全部楼层

回复 1# lonely_boy 的帖子

你有很多东西都没说,

你用什么语言? c ? c++? java? .net ? python? forthan? cobol ??????

在接下来, 你最好将你说写了的code贴上来, 这样会有更多人愿意帮你。
在不然, 你就将你的思路写下来, 让我们知道你有作功课的, 而不是直接找人帮你做作业。

如果你是希望别人帮你作作业, 自己 c&p 的话, 那么这里很多大大的脾气都不大好的, 回帖时难免会
回复

使用道具 举报

发表于 1-7-2008 06:39 PM | 显示全部楼层
别介意PeachHuman吧,看他头像就知道他只会倒米。。。  倒米兄,要知道,别人也一样为你的父母感到难过呢。你要是能给lonely_boy一些建设性的建议或帮助,然后再酸他一下,别人也不觉得怎么样,lonely_boy可能也顶多当作是你提共援助的代价,自认倒霉算了,反正也得到想要得答案。可是这么无缘无故没来由的牵扯到人家父母,太不厚道了!当你看到我说大家也为你父母感到难过时,你是不是也觉得脑充血,想回文对我破口大骂一番呢?己所不欲勿施于人啊。

再说,lonely_boy也不曾要求任何人直接提供答案或程式码(看看那些可耻的 “找人帮忙做Project,赚外快“ 的题目吧!),你凭什么这样指责他呢?真正懂得帮他的人都知道这是学校的功课,若真的要帮他,是不会直接给出答案,而是跟他解释个中原理,让他自己领悟,从而自己寻找出答案。

lonely_boy:你的问题要求你使用一个array来接受一系列的输入(使用一个成为ReadEntries()的function),然后呼叫Compare()这个function来比较这些数字的大小,在通过Difference()这个function 来计算这些数字的差别。这是个很简单的程式来的。

对于那个储存数字的array,你可以选择一个够大的固定数量,或者选择dynamic allocation,就是根据用户输入的数据数量来向系统索取刚刚好足够的储存空间。

固定数量的array的话,你可以选择一个够大的最大值,例如 :

int Values[100],这个array可以让你接受达到100个数字。

非固定的话,你在询问了用户想要输入的数字的数目后,可以呼叫 malloc() 来向系统索取足够的储存空间,例如使用者想要输入6个数字:

int *values = (int *)malloc(sizeof(int)*6);

如果你的课程还没教过你malloc()那就还是用固定数量的array好了。

使用 int user_num 来储存用户想要输入的数量,你可以使用scanf()来获得这个数值。

然后使用for loop来获得使用者输入的数字
  1. for(int i=0; i<uer_num; i++)
  2. {
  3.      呼叫GetEntries()来获取数字,存入在values[i];
  4. }

  5. 然后使用一个 nested for loop 来呼叫 Compare() 和 Difference():

  6. for(int i=0; i<user_num-1; i++)
  7. {
  8.    for(int j=1; j<user_num; j++)
  9.   {
  10.       Compare(values[i], values[j]);
  11.       Difference(values[i], values[j]);
  12.   }
  13. }
复制代码
之所以 i 只 loop 到 user_num -1 以及 j 从 1开始,是因为你不需要比较数值(0, 0) 和 (5, 5)因为它们无需和自己做比较。

免责声明:以上理论可能有bug,并不保证完全无误,所以自己看着办吧。。。

[ 本帖最后由 geekman 于 1-7-2008 06:42 PM 编辑 ]
回复

使用道具 举报

发表于 1-7-2008 06:40 PM | 显示全部楼层
你可以写的详细一点你要的是什么吗?
那些function是要在你的program 里出现的吗?
就如楼上所问的,你要用什么language?
其实,以我看来这个问题并不困难咯。。只是你没有详细地说明你要的是怎样的Program咯。。
回复

使用道具 举报

发表于 1-7-2008 07:27 PM | 显示全部楼层
無辜的樓主被罵了。。好可憐。
回复

使用道具 举报

发表于 1-7-2008 07:32 PM | 显示全部楼层

回复 10# geekman 的帖子

敢问大大,
int *values = (int *)malloc(sizeof(int)*6);

卧一般都写成

int *value;
value = (int*) malloc(6);

因为若是以 sizeof(int) * 6 的话, 那么array size 不是变成 array[int size * 6 ] 了?

比如int 是 4 byte, 那么 array[24] 了?

小弟在这里有疑问, 望大大解答。
回复

使用道具 举报

发表于 1-7-2008 07:37 PM | 显示全部楼层
原帖由 onlylonly 于 1-7-2008 07:32 PM 发表
敢问大大,
int *values = (int *)malloc(sizeof(int)*6);

卧一般都写成

int *value;
value = (int*) malloc(6);

因为若是以 sizeof(int) * 6 的话, 那么array size 不是变成 array 了?




比如int 是  ...


malloc(6)  只拿到 6 bytes 夠 你用嗎?   你一個unit 都要 4 bytes了。。
回复

使用道具 举报

发表于 1-7-2008 07:40 PM | 显示全部楼层

回复 14# tensaix2j 的帖子

paiseh,

我想到了 char

char *swap = (char*) malloc(6+1)

习惯成自然
回复

使用道具 举报

发表于 1-7-2008 09:08 PM | 显示全部楼层
IT 是酱的咯。。。很现实的。。。no spoon feed...这是我读IT接触到的。。。别妄想有免费人家帮你做。。。要自己try try 先。。。然后post 上来让大大帮你check check。。。酱你会学的比较快
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 1-7-2008 10:07 PM | 显示全部楼层
好的谢谢各位大大的建议和答案我会自己试试看,然后再麻烦各位大大帮我修修 特别谢谢only only, blur blur boy, tensaix2, stupidbanana , geekman和 香草云
回复

使用道具 举报

发表于 1-7-2008 11:10 PM | 显示全部楼层
原帖由 geekman 于 1-7-2008 06:39 PM 发表
别介意PeachHuman吧,看他头像就知道他只会倒米。。。  倒米兄,要知道,别人也一样为你的父母感到难过呢。你要是能给lonely_boy一些建设性的建议或帮助,然后再酸他一下,别人也不觉得怎么样,lonely_boy可能也 ...



你讲太多料
回复

使用道具 举报

发表于 2-7-2008 12:25 AM | 显示全部楼层

回复 18# 香草云 的帖子

不算多,这个题目的重点有四个,我只说出1个(nested for loop),其他的还是得靠她自己。这个nested for loop如果他已经知道怎么用,那我说了也没什么影响,如果他不会用,不说的话他会完全无法前进。
回复

使用道具 举报

发表于 2-7-2008 09:32 AM | 显示全部楼层
nested loop? 我的思路倒是用一个loop罢了, 不懂对不对, 我也是新手。
  1. for(int i=0; i<user_num-1; i++)

  2. {

  3.    for(int j=1; j<user_num; j++)

  4.   {

  5.       Compare(values, values[j]);

  6.       Difference(values, values[j]);

  7.   }

  8. }
复制代码
改成
  1. for(int i=0; i<user_num-1; i++)
  2. {

  3.       Compare(values[i], values[i+1]);
  4.       Difference(values[i], values[i+1]);

  5.   }
复制代码
因为每一次compare, different 都是以第一个num 与 下一个 num 来进行的, 比如 array[0] 与 array[1], 那么i == 0 , 自然 i + 1 == 1 了, 依此类推, 应该可以省了一个for loop

[ 本帖最后由 onlylonly 于 2-7-2008 09:34 AM 编辑 ]
回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 24-12-2025 07:14 AM , Processed in 0.087756 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表