emmm…还是很菜啊。。这些问题想到最优解的都是因为才听过。没听过的就写得很繁复了。虽然最后也出结果了但是代码写得像坨屎一样。。加油啊任重而道远。
1.给定两个整形变量的值,将两个值的内容进行交换
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a=8,b=62;
printf("给定值:8,62\n");
a=a^b;
b=a^b;
a=a^b;
printf("交换后:");
printf("%d %d\n",a,b);
system("pause");
return 0;
}
2.不允许创建临时变量,交换两个数的内容
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a,b;
printf("请输入两个整数:\n");
scanf("%d%d",&a,&b);
a=a^b;
b=a^b;
a=a^b;
printf("交换后:\n");
printf("%d %d\n",a,b);
system("pause");
return 0;
}
3.求10 个整数中最大值
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int max=0;
int i;
int a[10]={7,10,0,31,43,19,5,8,7,7};
printf("十个整数为:\n");
printf("7,10,0,31,43,19,5,8,7,7\n");
for(i=0;i<=9;i++)
{
if(max>a[i])max=max;
else max=a[i];
}
printf("max=%d\n",max);
return 0;
}
4.将三个数按从大到小输出
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a,b,c;
int min=0,mid=0,max=0;
printf("请输入三个数:\n");
scanf("%d%d%d",&a,&b,&c);
if(a>=b)
{
if(a>=c)
{
if(c>=b){max=a;mid=c;min=b;} //a>=c>=b
else {max=a;mid=b;min=c;} //a>=b>=c
}
else {max=c;mid=a;min=b;} //b<=a<=c
}
else if(c>=b){max=c;mid=b;min=a;} //a<=b时,如果c>=b,c>=b>=a
else if(a>=c){max=b;mid=a;min=c;} //a<=b,c<=b时,如果c<=a,b>=a>=c
else {max=b;mid=c;min=a;} //a<=b,c<=b,a<=c,b>=c>=a
printf("从大到小排列:\n");
printf("%d %d %d\n",max,mid,min);
system("pause");
return 0;
}