C语言问题,求句句详解。。

#include "stdio.h"

void swap(int *a,int *b)

{
int t;
t=*a;
*a=*b;
*b=t;
}

int main()
{
int a1,a2,a3,x;

scanf("%d%d%d",&a1,&a2,&a3);
if(a1>a2)
swap(&a1,&a2);
if(a2>a3)
swap(&a2,&a3);
if(a1>a2)
swap(&a1,&a2);

scanf("%d",&x);
if(x<a2)
if(x<a1)
printf("%d%d%d%d\n",x,a1,a2,a3);
else
printf("%d%d%d%d\n",a1,x,a2,a3);

else
if(x<a3)
printf("%d%d%d%d\n",a1,a2,x,a3);
else
printf("%d%d%d%d\n",a1,a2,a3,x);

return 0;

}

求详细解释。。
#include "stdio.h"
#include "string.h"
#define SIZE 100

int main()
{
char s[SIZE],m1,m2;
int i;

gets(s);
m1='';
m2='';
for(i=0;i<strlen(s);i++)
if(s[i]>m1){

m2=m1;
m1=s[i];
}
else if(s[i]>m2)
m2=s[i];

printf("%d%d\n",m1,m2);
return 0;
}

还有这个- -

#include "stdio.h" //头文件

void swap(int *a,int *b) //swap函数实现,功能是交换*a和*b的值

{
int t; //定义了临时变量
t=*a; //将*a的值赋给临时变量t
*a=*b; //将*b的值赋给*a
*b=t; //将t的值赋给*b
}

int main() //主函数
{
int a1,a2,a3,x; 定义了4个变量

scanf("%d%d%d",&a1,&a2,&a3); //输入3个数分别赋给a1、a2、a3
if(a1>a2) //如果a1>a2,就调用swap函数交换a1、a2
swap(&a1,&a2);
if(a2>a3) //如果a2>a3,就调用swap函数交换a2、a3

swap(&a2,&a3);
if(a1>a2) //a1>a2,就调用swap函数交换a1、a2

swap(&a1,&a2);
//至此a1、a2、a3就按从大到小排列了
scanf("%d",&x); //输入1个数分别赋给x
if(x<a2)//如果x<a2
if(x<a1)//如果x<a1
printf("%d%d%d%d\n",x,a1,a2,a3);//输出
else//x>a1
printf("%d%d%d%d\n",a1,x,a2,a3);

else//x>a2
if(x<a3)//x<a3
printf("%d%d%d%d\n",a1,a2,x,a3);
elsex>a3
printf("%d%d%d%d\n",a1,a2,a3,x);

return 0;

}

回答完毕。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-07
#include "stdio.h" 程序运行文件加载代码的搜索区域(相当于在杀毒时规定扫描区域在C盘)

void swap(int *a,int *b) 声明并定义一个函数swap(交换a,b)

{ 以下为算法,不解释。纯高中数学知识
int t;
t=*a;
*a=*b;
*b=t;
}

int main() 主函数,程序运行从main函数开始,结果返回为int型(整形)
{
int a1,a2,a3,x;

scanf("%d%d%d",&a1,&a2,&a3); scanf为一个stdio下默认的函数,作用给a1a2a3赋值下同
if(a1>a2)
swap(&a1,&a2); 调用swap函数,下同
if(a2>a3)
swap(&a2,&a3);
if(a1>a2)
swap(&a1,&a2);

scanf("%d",&x);
if(x<a2)
if(x<a1)
printf("%d%d%d%d\n",x,a1,a2,a3); printf类似scanf ,输出函数
else
printf("%d%d%d%d\n",a1,x,a2,a3);

else
if(x<a3)
printf("%d%d%d%d\n",a1,a2,x,a3);
else
printf("%d%d%d%d\n",a1,a2,a3,x);

return 0;

}
第2个回答  2011-10-07
#include "stdio.h"

void swap(int *a,int *b) \函数的定义\

{
int t;
t=*a;
*a=*b;
*b=t;
}

int main()\主函数\
{
int a1,a2,a3,x; \引进参数\

scanf("%d%d%d",&a1,&a2,&a3);
if(a1>a2)\ 排序 a3>a2>a1\
swap(&a1,&a2);
if(a2>a3)
swap(&a2,&a3);
if(a1>a2)
swap(&a1,&a2);

scanf("%d",&x);
if(x<a2)
if(x<a1)
printf("%d%d%d%d\n",x,a1,a2,a3);\如果x小于a1 a2,输出 x a1 a2 a3\
else
printf("%d%d%d%d\n",a1,x,a2,a3);\如果x小于a2大于a1 输出a1 x a2 a3\

else
if(x<a3)
printf("%d%d%d%d\n",a1,a2,x,a3);\如果x大于a1 a2小于a3 输出a1 a2 x a3\
else
printf("%d%d%d%d\n",a1,a2,a3,x);\如果x》a3 ,输出a1 a2 a3 x\

return 0;

}
第3个回答  2011-10-07
这个不难呀。
第4个回答  2011-10-07
dfgdfgf

c语言选择结构问题,求每一条语句的解释?
{ int a=2,b=7,c=5;switch(a>0)\/\/选择对于“a>0”这个表达式,他的值不是0就是1,这里显然a>0为真所以为1 { case 1:switch (b<0)\/\/同上显然为假所以值为0,所以剩下的都没有咯 { case 1:printf("@");break;\/\/ case 2: switch (c==5)\/\/ { case 0:printf("*");break...

有关C语言的问题,求解详细说明
1。 i=8, ++i表示先对i加一,然后使用i的值,因此为9;2. 此时i=9,--i表示先对i减1,然后使用i的值,因此为8;3.此时i=8,i++表示先使用i的值,也就是输出8,然后对i加一,此时i的实际值是9;4,此时i=9,i--表示先使用i的值,也就是9,然后对i减1,此时i的实际值是8 5,负号...

发现了一个有趣的c语言问题,请各位大神帮忙解释一下。
1.之所以再次编译值不改变,乃是因为系统在加载可执行镜像时所选取的栈的初始地址是相对固定的,a就在这个栈上,而且程序开始到main函数执行,这是一段按部就班的例程,没有什么变数,所以a的地址不变是可以理解的。2.scanf("%d",20000)这句合法并没有什么难以理解的地方,因为指针归根到底也只是一...

C语言的问题,求解释
{ int a=1;a=a+7; printf("%d\\n",a);return 0;} B.不对,虽然能得到正确答案,但不符合c语言语法。a=7+b+c,a++;应该为a=7+b+c;a++;a=7+b+c与a++是两个语句,应该用分号隔开,而不是用逗号!举例:include<stdio.h> int main(){ int a=1,b=1,c=1;a=7+b+c...

C语言问题,求过程以及解释谢谢
while语句不用看,不满足条件 直接看第一个for循环,J==2,i==1,第一次循环,a[3]=a[2]==5 第二次循环,a[2]=a[1]==4 退出循环 a[1]=k==3 得a[5]={1,3,4,5} include<stdio.h>int main(){ int i=1,n=3,j,k=3; int a[5]={1,4,5}; while(i<=n&&k>...

C语言问题,求详解
1、A,a & 3 == 3,3的二进制为0000 0000 0000 0000 0000 0000 0000 0011,这样就好比忽略a的高30位的值,只取其低2位。如果最低两个位 为二进制的 11,那么该表达式的值就等于 二进制的11(十进制的3),这两个位只要有任何一个位不为1那么该表达式就不可能成立 2、D,因为不能对...

有关C语言的几道题,求答案及解释
1、题目倒数第二句改为“输入字符A后”的话,ch的值是'A',getchar()是从标准输入流读取一个字符,并返回这个字符,赋值给了ch,所以ch的值就是你输入的那个字符,你输入A,它的值就是A 2、暂时还不是很明白,C和D都能在win-tc下编译通过,值都存在变量str3,和str4里面,可以通过printf("...

c语言问题解释求详细例如main()=? int=?或者定义
额,你不是想问c的语法吧………main()是主函数,程序一开始就调用这个函数,也就是运行main()里的程序块。int是Integer的缩写,意思是整数,表示声明整数型的变量。后面的i,k是变量名,就像数学里的x,y,z,一个名字,仅此而已。a[10],p[3]是数组,就是一串整数形数字,a有10个,p有3个。

C语言问题 运行结果是多少 为什么 求详细解答
结果15 之所以容易被理解错误是由于运算符优先级的问题 解决此类问题,第一步,宏展开 k=10*MIN(i,j);即 k=10*(i)<(j)? (i):(j);第二步,根据运算符优先级、结合性判断 原式等效于 k=(10*(i))<(j)? (i):(j);二目运算符*优先级高于三目运算符? :第三步,代入值,判断...

一个C语言的问题,求大神解答原因!
1、sub1中的变量a,b是其所在文件中定义的,其中a是静态全局变量,b是全局变量 a会默认初始化为0,因此第一次执行sub1()时输出结果中a=0+2=2, b=3+3=6。sub2中的变量a是其所在文件中定义的静态全局变量,因为与sub1()所处不同文件,因此变量a是不同的;而变量b是与另一个文件共享的全局...

相似回答
大家正在搜