请解答下列问题,详细者高分追加!
#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]));
}
过程~~ 展开
#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]));
}
过程~~ 展开
1个回答
展开全部
第一题: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。
第二题:注意,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。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询