二维练习和函数学习03/13

二维练习和函数学习03/13

 

 

二维练习

 

 

  1. 1.      抽奖活动:输入n个手机号码,滚动号码,5秒钟后停止输出中奖人号码

Console.Write("请输入人数:");

int a = int.Parse(Console.ReadLine());

string[] sj = new string[a];

for (int i = 0; i < a; i++)

{

Console.Write("输入第" + (i + 1) + "个人的手机号码:");

sj[i] = Console.ReadLine();

}

Console.WriteLine("输入完毕,请按回车键开始抽奖!");

Console.ReadLine();

Random ran = new Random();

int r = 0;

for (; ; )

{

int aa = ran.Next(a);

Console.Clear();

Console.WriteLine(sj[aa]);

System.Threading.Thread.Sleep(50);

if (r == 49)

{

//Console.Clear();//作弊代码

//Console.WriteLine("110");

break;

}

r++;

}

2、冒泡排序   从大到小排列

int[] shuzu = new int[] { 3, 1, 8, 4, 0, 5, 6 };

//8134056

//8314056

//8413056

//8513046

//8613045

//8631045

//8641035

//8651034

//8653014

//8654013

//8654103

//8654301

//8654310

int zhong;

for (int i = 0; i < 7; i++)

{

for (int j = i; j < 6; j++)

{

if (shuzu[i] < shuzu[j + 1])

{

zhong = shuzu[i];

shuzu[i] = shuzu[j + 1];

shuzu[j + 1] = zhong;

}

}

}

//for (int i = 0; i < 7; i++)

//{

//    Console.WriteLine(shuzu[i]);

//}

foreach (int a in shuzu)//遍历数组

{

Console.WriteLine(a);

}

3、输入人数,输入每个人的成绩,求最高分、最低分,去掉两个最高分,去掉两个最低分,求平均分。

Console.Write("输入人数:");

int a = int.Parse(Console.ReadLine());

double[] cj = new double[a];//输入成绩列表。

for (int r = 0; r < a; r++)

{

Console.Write("输入第" + (r + 1) + "个人的成绩:");

cj[r] = double.Parse(Console.ReadLine());

}

Console.WriteLine("输入完毕,请按回车键。");

Console.ReadLine();

double zhong;//冒泡排序

for (int i = 0; i < a; i++)

{

for (int j = i; j < a - 1; j++)

{

if (cj[i] < cj[j + 1])//从大到小排列,用<对调;从小到大排,用>对调。

{

zhong = cj[i];

cj[i] = cj[j + 1];

cj[j + 1] = zhong;

}

}

}

for (int e = 0; e < a; e++)//方法一:将排列顺序打印输出

{

Console.WriteLine(cj[e]);

}

//foreach (double e in cj)//方法二:将排列顺序打印输出

//{

//    Console.WriteLine(e);

//}

Console.WriteLine("最高分:" + cj[0]);

Console.WriteLine("最低分" + cj[a - 1]);

double sum = 0;                    //最后求和或平均数。

for (int k = 2; k < a - 2; k++)

{

sum = sum + cj[k];

}

Console.WriteLine("去掉两个最高分,去掉两个最低分,平均分为:" + sum / (a - 4));

函数

1、函数:能够独立完成某项功能的模块。

2、函数四要素:输入、输出、函数体、函数名

3、函数定义:

(static/public)  返回类型 函数名(参数类型 参数名,参数类型 参数名)

{

函数体

}

4、函数的调用:

返回变量类型 变量名 = 函数(实参值)

5、传值:四种方式

1.没有返回值,没有输入值

2.没有返回值,有输入值

3.有返回值,没有输入值

4.有返回值,有输入值

1、         函数累加求和,没有输入值(不在主函数中打输入),没有返回值(void)(不返回程序,在屏幕中打印出来)。

class Program

{

/// <summary>

/// 函数累加求和,没有输入值(不在主函数中打输入),没有返回值(void)(不返回程序,在屏幕中打印出来)。

/// </summary>

public void leijia1()

{

Console.Write("请输入一个正整数:");

int a = int.Parse(Console.ReadLine());

int sum = 0;

for (int i = 0; i <= a; i++)

{

sum += i;

}

Console.WriteLine(sum);

}

static void Main(string[] args)

{

////在主函数中的使用方式

Program pp = new Program();

pp.leijia1();

2、         累加求和,有输入值(在主函数中打输入),没有返回值(不返回程序,在屏幕中打印出来)。

class Program

{

/// <summary>

////累加求和,有输入值(在主函数中打输入),没有返回值(不返回程序,在屏幕中打印出来)。

/// </summary>

/// <param name="a"></param>

public void leijia2(int a)

{

int sum = 0;

for (int i = 0; i <= a; i++)

{

sum += i;

}

Console.WriteLine(sum);

}

static void Main(string[] args)

{

//在主函数中的使用方式

Program pp = new Program();

Console.Write("请输入一个正整数:");

int sum = int.Parse(Console.ReadLine());

pp.leijia2(sum);

3、         累加求和,没有输入值(不在主函数中打输入),有返回值(int)(返回程序,不在屏幕中打印出来)。

class Program

{

/// <summary>

////累加求和,没有输入值(不在主函数中打输入),有返回值(int)(返回程序,不在屏幕中打印出来)。

/// </summary>

/// <returns></returns>

public int leijia3()

{

Console.Write("请输入一个正整数:");

int a = int.Parse(Console.ReadLine());

int sum = 0;

for (int i = 0; i <= a; i++)

{

sum += i;

}

return sum;

}

static void Main(string[] args)

{

////在主函数中的使用方式

////要在屏幕中打印输出,要:

Program pp = new Program();

int sum = pp.leijia3();

Console.WriteLine(sum);

4、         累加求和,有输入值(在主函数中打输入),有返回值(返回程序,不在屏幕中打印出来)。

class Program

{

/// <summary>

////累加求和,有输入值(在主函数中打输入),有返回值(返回程序,不在屏幕中打印出来)。

/// </summary>

/// <param name="a"></param>

/// <returns></returns>

public int leijia4(int a)

{

int sum = 0;

for (int i = 0; i <= a; i++)

{

sum += i;

}

return sum;

}

static void Main(string[] args)

{

////在主函数中的使用方式

////要在屏幕中打印输出,要:

Program pp = new Program();

Console.Write("请输入一个正整数:");

int a = int.Parse(Console.ReadLine());

int sum = pp.leijia4(a);

Console.WriteLine(sum);

时间: 2024-10-24 07:10:39

二维练习和函数学习03/13的相关文章

C++_二维数组作为函数参数的使用方法

二维数组作为函数参数的使用方法 /*01)恒等式:ar2[r][c] == *(*(ar2+r)+c)03) ar2+r指向编号为r的元素,该元素由c个int型(或其他类型)数组成,编号从0开始02)int a[100][4]; ....   int total = sum(a,100); //在主函数中调用sum()函数,使用二维数组中的全部的数据   int total = sum(a,10); //在主函数中调用sum()函数,使用二维数组中的前十行数据   int total = sum

C语言二维数组作为函数的参数

前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数.在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示.我写程序的错误如下程序所示: #include <cstdio> void print(int *a[3]) { printf("%d\n",a[0][0]); } int main() { int a[2][3] = {1,2,3,4,5,6}; print(a); return 0; } 编译程序时候,在第10行提示错误信息:|

二维数组作为函数参数传递剖析

前言 很多文章不外乎告诉你下面这几种标准的形式,你如果按照它们来用,准没错: //对于一个2行13列int元素的二维数组 //函数f的形参形式 f(int daytab[2][13]) {...} //以下两种可以忽略行数 f(int daytab[][13]) {...} f(int (*daytab)[13]) {...} 甚至会有人告诉你多维数组作为参数传递可以省略第一维,其他维不能省略.然而你对这种形式并不满意:如果事先限定了二维数组的大小,函数的泛用性就要大打折扣了.因为你真正需要的,

第三十四课 二维数组的存储 【项目1-3】

第三十四课 二维数组的存储 项目一[二维数组当函数参数] 定义一个函数来完成对参数数组中元素的求和工作,函数声明如下: [cpp] view plain copy print? int sum(int array[ ][4],int m,int n);  //该函数完成对array数组中的前m行和n列元素求和 在以下程序的基础上,完成对sum函数的定义. [cpp] view plain copy print? #include <stdio.h> int sum(int array[ ][4

二维数组作为函数的参数传递

如何将二维数组作为函数的参数传递,这是涉及到多维数组时经常要遇到的问题.长期来,我们往往知其然,但不知其所以然.这里简单总结一下. 1.<C程序设计>中讲到:可以用二维数组名作为实参或者形参,在被调用函数中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如: void Func(int array[3][10]); void Func(int array[][10]); 二者都是合法而且等价,但是不能把第二维或者更高维的大小省略.两个示例程序如下: #include <

二维数组作为函数参数的几种方法

#include <stdio.h> #define N 5 void fun1(int a[N][N]) { int i,j; for (i=0;i<N;i++) { for (j=0;j<N;j++) { if (i>j) { a[i][j]+=a[j][i]; a[j][i]=0; } } } } void fun2(int **a,int m,int n) { int i,j; for (i=0;i<m;i++) { for (j=0;j<n;j++) {

二维数组作为函数参数深度详解

        前几天和同学讨论数组作为函数参数,感觉各种困惑.花了一些时间在网上查看了一些资料,并加上自己的理解.记录一下! 一. 指向指针的指针和指向数组的指针 很多人以为"指向数组的指针"就是"指向指针的指针",于是有人写这样的代码: int a[3][4]; int **p = a; //错误 数组实际类型是int [3][4],在作为右值时可以被转化为int (*)[4],它们都和int **不同,自然不可用. 那么,你要用一个指针来指向a,就要用一个

C语言如何将二维数组作为函数的参数传递

可以用二维数组名作为实参或者形参,在被调用函数中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如: void Func(int array[3][10]); void Func(int array[][10]); 二者都是合法而且等价,但是不能把第二维或者更高维的大小省略,如下面的定义是不合法的: void Func(int array[][]); 因为从实参传递来的是数组的起始地址,在内存中按数组排列规则存放(按行存放),而并不区分行和列,如果在形参中不说明列数,则系统无

二维数组做函数参数、指向指针的指针做函数参数

这里有一篇文章  写的很好http://blog.csdn.net/f81892461/article/details/8974087 该文章中有一句话  总之就是:数组无法作为参数,总会被编译器将地址赋值给形参指针的,即使指针定义成数组形式,也还是指针.然后各种差别都是由数组和指针不同的定位元素的方式导致的. 这句话说的很对啊,数组做形参的是时候都是被当成指针来处理的.不明白这句话的可以看一下,参考文章链接里的那幅图,注意比较一下下图中的两个:data+1,第一个data+1指向的是元素dat