您的位置:首页 > 移动开发 > IOS开发

ios学习记录 day6

2014-03-06 18:46 267 查看
复习了一下昨天的知识

遍历就是从头到尾查一遍

作业:

1.输入两个数 倒过来输出 不用第三个变量

int a = 0,b = 0;
scanf("%d,%d",&a,&b);
printf("原来输入的是%d,%d\n",a,b);
a = a + b;
b = a - b;
a = a - b;
printf("倒过来输出%d,%d\n",a,b);
2.20个10-50的随机数,输出最大值,最小值,和,平均数.

(1)int a[20] = {0};
int sum = 0;
int maxIndex = 0,minIndex = 0;
for (int i = 0;i < 20;i++){
a[i] = arc4random() % (50 - 10 + 1) + 10;
printf("a[%d] = %d ",i,a[i]);
if (a[maxIndex] < a[i]) {
maxIndex = i;
}
if (a[minIndex] > a[i]) {
minIndex = i;
}
sum += a[i];
}
printf("\nmax = %d\nmin = %d\nsum = %d\navg = %.2f\n",a[maxIndex],a[minIndex],sum,sum / 20.0);
(2)int array[20] = {0};
int sum = 0;
for (int i = 0; i < 20; i++) {
array[i] = arc4random() % (50 - 10 + 1) + 10;
sum += array[i];
}
for (int i = 0; i < 20 - 1; i++) {
for (int j = 0; j < 20 - i - 1; j++) {
if (array[j] > array[j + 1]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
for (int i = 0; i < 20; i++) {
printf("array[%d] = %d\n",i,array[i]);
}
printf("最大值%d\n最小值%d\n和%d\n平均值%.2f",array[19],array[0],sum,sum / 20.0);

3、编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,用空格来分隔单词。

(1)char a[100] = "i love iphone";
char b[100] = "",c[100] = "";
int maxl = 0,l = 0,i = 0,j = 0;
long weizhi = 0;
for (i = 0; i < 100; i++) {//循环次数是定义的数组a的长度
if (a[i] != ' ' && a[i] != '\0') {
l++;//单词长度+1
b[j] = a[i];
j++;
}else{
j = 0;//数组b的角标清空
if (l > maxl) {
maxl = l;
strcpy(c, b);
weizhi = i - strlen(c) + 1;
}
l = 0;//单词长度清空
}
}
printf("最长单词是%s,单词起始位置%ld\n",c,weizhi);

(2)char s[] = "are you kidding me ";
int length = 0,maxlength = 0,index = 0;
int i = 0;

while (s[i] != '\0') {
if (s[i] != ' ') {
length++;
}else{
if (maxlength < length) {
maxlength = length;
index = i - maxlength;
}
length = 0;
}
i++;
}
for (int i = index; i < index + maxlength; i++) {
printf("%c",s[i]);
}
printf("\n");
printf("maxlength = %d\n",maxlength);//缺陷 如果最后一个单词最长不能输出

4、耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,最后留在圈子内的人就是出卖耶稣的叛徒。请找出它原来的序号。

int person[13] = {0};//参加游戏的人
int p = 0,count = 0,i = 0;//p坐下的人,count就是1 2 3 1 2 3,
while (true) { //死循环
if (person[i] == 0) {
count++;
}//没退出的人 数数
if (count == 3) {
printf("%d ",i + 1);//输出坐下的顺序
person[i] = 1;
p++;//退出的人加1
count = 0;
}//数到3坐下
if (p == 12) {
break;
}//坐下12个人结束
i++;//下脚标 0 - 12
if (i == 13) { //到13表示一圈执行完了
i = 0;
}//一共13人 数完一圈从头再数
}

for (int i = 0; i < 13; i++) {
if (person[i] == 0) {
printf("pantu:%d\n",i + 1);
break;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: