给定一个整数n,判断这个整数n是不是小于2,如果小于2则提示给定数值不在有效范围内,否则计算从1到n的累加和。
int sum=0
if(n<2){
printf("给定数值不在有效范围内")
}else{
for(int i=1i<=ni++){sum = sum +i}
printf("%d",sum)
}
R语言中的switch与其它语言中的switch有很大区别。
在R中,switch函数的语法形式如下:
其中,expr为表达式,其值或为一个整数值或为一个字符串;list为一个列表。
运行机理:若expr的计算结果为整数,且值在1~length(list)之间时,则switch()函数返回列表相应位置的值。若expr的值超出范围,则没有返回值(老版本的R中返回NULL)。
例1:
由该例可知,x的值为2,则switch函数根据传入的值2,输出列表中的第2个值:国家纳米科学中心。
例2:看看下面两个例子的输出值是多少:
若switch()中的参数list是有名定义时,则当expr等于元素名时,返回变量名对应的值,否则没有返回值。
例3:
you.like<-"fruit"
switch(you.like, drink="water", meat = "beef", fruit = "apple", vegetable="cabbage")
我们使用switch函数的这一性质可以定义一个函数实现多种操作:
R语言的switch结构是常用的一种结构
工具/原料
R语言开发环境
R语言开发工具
方法/步骤
打开R语言开发工具,RGui
R语言switch的使用方法
先定义一个向量
R语言switch的使用方法
使用for结构对switch进行循环输出
R语言switch的使用方法
编写switch结构的语言
R语言switch的使用方法
回车后,根据print函数输出switch函数的结构
R语言switch的使用方法
6
应用解析:for对向量bd进行循环,
通过print对switch定义的结构判断结构中符合向量的要求,
然后把符合要求的输出!
先对两个vector中的元素都按从大到小的顺序排序 然后定义两个iterator,分别指向两个vector的头部 vector<int>firstvector<int>secondvector<int>::iterator poiFirvector<int>::iterator poiSecpoiFir=first.begin()poiSec=second.begin()然后循环直到poiFir指向first的尾部或poiSec指向second的尾部 每次循环的内部: 判断*poiFir和*poiSec的大小 (1)若相等,则为相同的元素,记录此值(可以另建一个vector<int>save用于存放相等的值,save.push_back(*poiFir)),再将poiFir++;poiSec++;(2)若*poiFir大于*poiSec的值,则将poiSec++; (3)若*poiFir小于*poiSec的值,则将poiFir++; 循环结束后,save中存储的值即为两个vector中相等的值 时间效率为两个vector中元素个数的和