如何在不使用if函数的情况下重新排列数字?

时间:2018-03-13 12:32:18

标签: c

这是我的编程课程给我带来的挑战之一

我该如何开始或开始?我只允许使用'printf'和'scanf'。

“编写一个C程序order3_challenge1.c,读取3个整数,并将它们从最小到最大打印。

您不得使用if语句。

不允许您使用循环(例如,while)。

不允许调用printf和scanf以外的函数。例如,您不能使用数学库中的函数。

您不允许在表达式中使用printf - 您只能将printf用作语句(在讲座中使用它的方式)。

您可以使用printf打印表达式的值,换句话说,您可以在printf中包含表达式。

您只能使用第1周和第2周讲座中涵盖的C部分。例如,您不允许使用三元?:运算符。您不能定义函数。“

1 个答案:

答案 0 :(得分:1)

这样的事可能吗?

 class ViewModel : NotifyPropertyChanged
    {
        private Uri My_URI = new Uri("/Pages/Results/MyList.xaml", UriKind.Relative);
        private LinkCollection someLinks;
private string path = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName;

        public ResultsViewModel()
        {

            someLinks= new LinkCollection();

            add_to_list(someLinks);


        }


        public void add_to_list(LinkCollection someLinks)
        {
            XDocument xdoc = XDocument.Load(path + @"\Pages\Results\Target_XML.xml");

            List<string> names= xdoc.Elements().Elements().Elements().Select(x => x.Name.LocalName).ToList();

            foreach (string ing_name in names) 
                someLinks.Add(new Link() { DisplayName = ing_name, Source = My_URI});
        }

        public LinkCollection SomeLinks
        {
            get { return this.someLinks; }
        }

没有定义功能:

int max(int a, int b, int c)
{
     int max = a;
     (max < b) && (max = b);
     (max < c) && (max = c);
     return max;
}

然后执行相同的过程以获得最小数量,并相应地显示。

对于中间数字,您可以使用以下内容:
int a,b,c; //initiliase and declare with vlaues you want int max = a; (max < b) && (max = b); (max < c) && (max = c); printf("%d", max)