C语言两道题,求运行结果。 请写出详细分析过程!!谢谢!满意答案与解释者给分

1、#include<stdio.h>main(){charstr[]="helloeverybody";inti=1,j=0;while(str[i]!='\0'){i... 1、#include <stdio.h>
main()
{char str[]="helloeverybody";
int i=1,j=0;
while(str[i]!='\0'){
if(str[i]>str[j]) j=i;
i++;
}
str[j]=str[i];
puts(str);
}
2、
#include <stdio.h>
int order(int a[],int i)
{return a[i]<a[i+1];
}
void main()
{
int n,a[]={29,5,18,8,5,3,8,2};
for(n=0;n<7;n++)
if(order(a,n))
printf("%d,%d\n",a[n],a[n+1]);
}
答案是
1、 helloever

2、 5,18
3,8
展开
 我来答
戚文柏Ro
2013-03-18 · TA获得超过336个赞
知道小有建树答主
回答量:400
采纳率:100%
帮助的人:403万
展开全部
main()
{char str[]="helloeverybody";
int i=1,j=0;
while(str[i]!='\0')
{
if(str[i]>str[j]) j=i; //此处的循环表示字符数组里的元素,后面一个比前面一个大,那么就把后面的索 引赋给前者,如此循环,找不最大的字符,由于字符'y'最大,那么j的索引指向'y',而str[i]就为'\0'了;
i++;
}
str[j]=str[i]; //把‘\0’赋给'y',即去掉从'y'开始的字符串.
puts(str); //即答案为:helloever
}

#include <stdio.h>
int order(int a[],int i)
{return a[i]<a[i+1]; //数组中后面的元素比前面大,那么就返回真,否则返回假.
}
void main()
{
int n,a[]={29,5,18,8,5,3,8,2};
for(n=0;n<7;n++)
if(order(a,n)) //如果返回真,就输出
printf("%d,%d\n",a[n],a[n+1]);
}
即答案为:
5 18
3 8
pardream941026
2013-03-18 · TA获得超过8217个赞
知道大有可为答主
回答量:4602
采纳率:89%
帮助的人:1343万
展开全部
main()
{char str[]="helloeverybody";
int i=1,j=0;
while(str[i]!='\0'){//如果没到字符串结尾,则继续
if(str[i]>str[j]) j=i; //相当于j指向字符串中的最大字符,如果i指向的字符>j指向的字符,则j指向i指向的字符
i++;//下一个字符
}
由 str[]="helloeverybody"来看,j->第一个y时(j=9),不再有比它更大的字符。
str[j]=str[i];//此时j=9, i = 14 str[14]='\0' ,即str[9] = '\0',结束符
puts(str); // = "helloever"
}
2、
#include <stdio.h>
int order(int a[],int i) {
return a[i]<a[i+1];// a>b 结果为
}
void main()
{
int n,a[]={29,5,18,8,5,3,8,2};
for(n=0;n<7;n++)
if(order(a,n))
printf("%d,%d\n",a[n],a[n+1]);
}
n=0 29<5为假,返回值为0,不输出
n=1 5<18为真,返回值为1, 输出5,18
n=2 18<8为假,返回值为0, 不输出
n=4 8<5为假,返回值为0,不输出
n=5 5<3为假,返回值为0,不输出
n=6 3<8为真,返回值1,输出3,8
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gogoni3
2013-03-18 · 超过10用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:9.6万
展开全部
3,8函数1;结果为helloever;
因为str[i]!='\0’,所以退出循环时,str[i]='\0‘;
由于句子中y最大根据ASCII表;所以句子第一个y被换成'\0'(因为y不大于y);所以printf函数遇到‘、0’结束输出,都答案如此!!!!
函数2:结果为5,18
3,8
由于比较的返回值为徒true或者false;
所以当a[i]<a[i+1]成立时,输出a[i]与a[i+1];故答案如此!!!!!!!!!!!!!!!!!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式