vxzv 发表于 2014-8-8 09:36:48

不知道有没有人能做这个算法,最好是C语言


ColbySuns 发表于 2014-8-8 09:36:49

毕竟我是一个不太懂写注释的人。C#如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Fischc_01
{
    class Program
    {
      static void Main(string[] args)
      {
            string answer = "";
            bool flag = true;
            while (flag)
            {
                int key = Convert.ToInt32(Console.ReadLine());
                if (key != -1)
                {
                  int[] length = new int;
                  int[] width = new int;
                  int[] high = new int;
                  int[] bulk = new int;
                  string[] name = new string;
                  string lessMan="",moreMan="";
                  
                  float sum = 0;
                  float average;
                  for (int i = 0; i < key; i++)
                  {
                        string temp1 = Console.ReadLine();
                        string[] temp2 = temp1.Split(' ');
                        length = Convert.ToInt32(temp2);
                        width = Convert.ToInt32(temp2);
                        high = Convert.ToInt32(temp2);
                        bulk = length * high * width;
                        name = temp2;
                  }
                  for (int i = 0; i < key; i++)
                  {
                        sum = sum + bulk;
                  }
                  average = sum / key;
                  for(int i =0;i<key;i++)
                  {
                        if(bulk<average)
                        {
                            lessMan= name;
                        }else if(bulk>average)
                        {
                            moreMan = name;
                        }

                  }
                  answer += moreMan + " took clay from " + lessMan + ".\n";
                }
                else
                {
                  flag = false;
                }
            }
            Console.WriteLine(answer);
            Console.ReadKey();
      }
    }
}

拈花小仙 发表于 2014-8-8 09:48:12

@Angel丶L

ColbySuns 发表于 2014-8-8 10:39:15

:sad占座先

yyamd 发表于 2014-8-8 11:04:07

我看看

vxzv 发表于 2014-8-8 15:26:11

ColbySuns 发表于 2014-8-8 11:18
毕竟我是一个不太懂写注释的人。C#如下:

幸亏能看懂c#   

bluenew 发表于 2014-8-8 15:26:54

我看看

ColbySuns 发表于 2014-8-8 15:49:29

vxzv 发表于 2014-8-8 15:26
幸亏能看懂c#

务必把悬赏给我~

vxzv 发表于 2014-8-8 16:19:54

ColbySuns 发表于 2014-8-8 15:49
务必把悬赏给我~

加上注释就给你:lol:

vxzv 发表于 2014-8-8 16:21:23

ColbySuns 发表于 2014-8-8 15:49
务必把悬赏给我~

其实我是卡在那个字符串的输入上,这样的话还是用c++吧

hhczy95 发表于 2014-8-8 23:14:08

这哪算是 算法啊。。。C 语言直接一个小朋友的结构体存橡皮泥和名字 再对结构体 快速排序 。。。 显然,最后一个结构体 抢了 第一个结构体橡皮泥啊

hhczy95 发表于 2014-8-8 23:15:39

hhczy95 发表于 2014-8-8 23:14
这哪算是 算法啊。。。C 语言直接一个小朋友的结构体存橡皮泥和名字 再对结构体 快速排序 。。。 显然,最 ...

:lol:新来鱼油混个脸熟啊   

vxzv 发表于 2014-8-9 11:19:41

hhczy95 发表于 2014-8-8 23:14
这哪算是 算法啊。。。C 语言直接一个小朋友的结构体存橡皮泥和名字 再对结构体 快速排序 。。。 显然,最 ...

简单的话那就写一个呗,这样其他鱼油也能方便看

hhczy95 发表于 2014-8-9 18:54:14

vxzv 发表于 2014-8-9 11:19
简单的话那就写一个呗,这样其他鱼油也能方便看

#include <stdio.h>
#include <algorithm>
using namespace std;

struct stduent
{
    int size;   // 如果没有谁抢谁的,那么他们橡皮的体积应该一样
    char name;
    bool operator < (const stduent &B) const
    {
      return size < B.size;
    }// 这个函数是为了调用 sort 对结构体排序,不理解先背下来好了,我也是这样做的
}student;

int main()
{
    int n;
    while(~scanf("%d",&n),n != -1)// ~ 当输入文件结尾退出
    {
      int i,x,y,h,s;
      for(i=0;i<n;i++)
      {
            scanf("%d%d%d",&x,&y,&h);
            student.size=x*y*h;
            getchar();//吃到输完数字后那个空格或者回车
            scanf("%s",student.name);
      }
      sort(student,student+n);
      printf("%s took clay from %s\n",student.name,student.name);
    }
    return 0;
}

hhczy95 发表于 2014-8-9 18:56:29

#include <stdio.h>
#include <algorithm>
using namespace std;

struct stduent
{
    int size;   // 如果没有谁抢谁的,那么他们橡皮的体积应该一样
    char name;
    bool operator < (const stduent &B) const
    {
      return size < B.size;
    }// 这个函数是为了调用 sort 对结构体排序,不理解先背下来好了,我也是这样做的
}student;

int main()
{
    int n;
    while(~scanf("%d",&n),n != -1)// ~ 当输入文件结尾退出
    {
      int i,x,y,h,s;
      for(i=0;i<n;i++)
      {
            scanf("%d%d%d",&x,&y,&h);
            student.size=x*y*h;
            getchar();//吃到输完数字后那个空格或者回车
            scanf("%s",student.name);
      }
      sort(student,student+n);
      printf("%s took clay from %s\n",student.name,student.name);
    }
    return 0;
}



囧。。。没注意到这样贴代码好一点

vxzv 发表于 2014-8-10 16:04:56

hhczy95 发表于 2014-8-9 18:56
囧。。。没注意到这样贴代码好一点

哈哈。。注意注意啦:lol:

careless 发表于 2014-8-10 17:46:05

我也看看.....

hhczy95 发表于 2014-8-10 19:22:39

vxzv 发表于 2014-8-10 16:04
哈哈。。注意注意啦

你这是在哪里找的题目啊

vxzv 发表于 2014-8-12 09:51:35

同学发给我的,他准备参加acm,我就算了吧

vxzv 发表于 2014-8-12 09:52:43

hhczy95 发表于 2014-8-10 19:22
你这是在哪里找的题目啊

同学发给我的,他准备参加acm,我就算了吧
页: [1] 2
查看完整版本: 不知道有没有人能做这个算法,最好是C语言