请解答下列问题,详细者高分追加!

#include"stdio.h"#defineMIN(x,y)(x)<(y)?(x):(y)main(){inti,j,k;i=10;j=15;k=10*MIN(i,j... #include "stdio.h"
#define MIN(x,y) (x)<(y)?(x):(y)
main()
{
int i,j,k;
i=10;
j=15;
k=10*MIN(i,j);
printf("%d\n",k);
}
为什么答案是15??

#define HDY(A,B) A/B
#define PRINT(Y) printf("y=%d\n",y)
#include <stdio.h>
main()
{
int a=1,b=2,c=3,d=4,k;
k=HDY(a+c,b+d);
PRINT(k);
}
为什么答案是6?

#include "stdio.h"
void fun(int a[],int i)
{
a[i]+=i;
}
void main()
{
int a[]={0,0,0,0},i;
for(i=0;i<sizeof(a)/sizeof(int);i++)
fun(a,i);
printf("%d%d%d%d%d",a[0],a[1],a[2],a[3],i);
return;
};
解答过程,详细,谢谢

#include <string.h>
#include <stdio.h>
void f(char p[][10],int n)
{
char t[10];int i,j;
for (i=0;i<n-1;i++)
for (j=j+1;j<n;j++)
if (strcmp (p[i],p[j])>0)
{
strcpy (t,p[i]);
strcpy (p[i],p[j]);
strcpy (p[j],t);
}
}
main()
{char p[5][10]={"abc","aabdfg","abbd","dcdbe","cd"};
f(p,5);
printf("%d\n",strlen(p[0]));
}
过程~~
展开
 我来答
百度网友e735d10
2011-01-31 · TA获得超过252个赞
知道小有建树答主
回答量:285
采纳率:0%
帮助的人:309万
展开全部
第一题:10*MIN(i,j);不是你理解的10*10,而是10*(x)<(y)?(x):(y),即(10*10)<15?10:15; 结果自然是15
第二题:注意,A/B没加括号,代入数值就变成了:a+c/b+d,即1+3/2+4=6;不是你想的那样:(1+3)/(2+4)
第三题:i<sizeof(a)/sizeof(int);这句话是关键,意思就是:i<a数组的元素个数,此时i<4;过程:fun(a[0],0),算出a[0]=0;然后fun(a[1],1),算出a[1]=1;然后fun(a[2],2),算出a[2]=2;然后fun(a[3],3),算出a[3]=3;最后,i经过自加运算,i=4; 所以结果是:01234
第四题:for (i=0;i<n-1;i++)
for (j=j+1;j<n;j++)
if (strcmp (p[i],p[j])>0)
{
strcpy (t,p[i]);
strcpy (p[i],p[j]);
strcpy (p[j],t);
}
这一段是选择排序,即p[i]与p[j]比较,要是p[i]比p[j]大,则交换位置,否则不动;最终结果应该是最小的那个排第一个,所以strlen(p[0]),这个的值就是最小的字符串的长度值,也就是“aabdfg”的长度值:6。最终结果应该是6。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式