复习了一下昨天的知识
遍历就是从头到尾查一遍
作业:
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;
}
}
原文:http://www.cnblogs.com/lxllanou/p/3585087.html