New Code day2
1. 给定两个整形变量的值,将两个值的内容进行交换。
#include<stdio.h>
int main()
{
int i = 10;
int j = 20;
int tmp = 0;
printf("i = %d j = %d \n",i,j);
tmp = i;
i = j;
j = tmp;
printf("i = %d j = %d \n",i,j);
return 0;
}
2. 不允许创建临时变量,交换两个数的内容(附加题)
#include<stdio.h>
int main()
{
int i = 10;
int j = 20;
printf("i = %d j = %d\n",i,j);
i = i + j;
j = i - j;
i = i - j;
printf("i = %d j = %d\n",i,j);
return 0;
}
3.求10 个整数中最大值。
#include<stdio.h>
int main()
{
int i = 0;
int arr1[10] = {1,2,3,99,5,6,7,8,9,10};
int Max = arr1[1];
for(i = 1; i < 10; i++)
{
if(arr1[i]>Max)
Max = arr1[i];
}
if(10 == i)
printf("%d \n",Max);
return 0;
}
4.将三个数按从大到小输出。
-1.0版本
#include<stdio.h>
int main()
{
int a,b,c,t = 0;
scanf("%d %d %d",&a,&b,&c);
if ( a < b )
{
t = a;
a = b;
b = t;
}
if( a < c )
{
t = a;
a = c;
c = t;
}
if( b < c )
{
t = b;
b = c;
c = t;
}
printf("%d %d %d",a,b,c);
return 0;
}
-2.0版本
冒泡排序
#include<stdio.h>
int main()
{
int i,j,t;
int a[3];
for(i=0; i<3; i++)
{
scanf("%d",&a[i]);
}
for(j=0; j<2; j++)
{
for(i=0; i<2-j; i++)
{
if(a[i] < a[i+1])
{
t = a[i];
a[i] = a[i+1];
a[i+1] = t;
}
}
}
for(i=0; i<3; i++)
{
printf("%d ",a[i]);
}
return 0;
}
-3.0
选择排序
#include<stdio.h>
#define M 3
void main()
{
int arr[M],i,j,t,k;
for(i=0;i<M;i++)
scanf("%d",&arr[i]);
for(i=0;i<M-1;i++)
{
k=i;
for(j=i+1;j<M;j++)
if(arr[k]<arr[j])
k=j;
if(i!=k)
{
t=arr[i];
arr[i]=arr[k];
arr[k]=t;
}
}
for(i=0;i<M;i++)
printf("%d ",arr[i]);
return 0;
}
5.求两个数的最大公约数。
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
int i,j,tmp = 0;
int Division()//辗转相除法
{
printf("请输入要使用的两个数>: \n");
scanf("%d %d",&i,&j);
if(i<j)
{
tmp = i;
i = j;
j = tmp;
}
while(0 != i%j)
{
tmp = i%j;
i = j;
j =tmp;
}
printf("最大公约数为: %d\n",j);
return 0;
}
int Subtract()
{
printf("请输入要使用的两个数>: \n");
scanf("%d %d",&i,&j);
if(i<j)
{
tmp = i;
i = j;
j = tmp;
}
while(0 != i-j)
{
tmp = i-j;
i = j;
j = tmp;
}
printf("最大公约数为: %d\n",j);
return 0;
}
int Exhaus()
{
printf("请输入要使用的两个数>: \n");
scanf("%d %d",&i,&j);
if(i<j)
{
tmp = i;
i = j;
j = tmp;
}
for(tmp = j; i%tmp ||j%tmp;tmp--);
printf("最大公约数:%d\n",tmp);
return 0;
}
void kaka(int nub)
{
switch(nub)
{
case 1:
Division();
break;
case 2:
Subtract();
break;
case 3:
Exhaus();
break;
default:
printf("输入错误!!!");
}
}
int main()
{
int nub = 0;
printf("请选择运算方法:> \n");
printf("*******************\n");
printf("*****方法选择******\n");
printf("****1.辗转相除法***\n");
printf("****2.相减法 ***\n");
printf("****3.穷举法 ***\n");
printf("*******************\n");
scanf("%d",&nub);
kaka(nub);
return 0;
}
番外篇:穷举法解释 https://blog.csdn.net/hacker00011000/article/details/51164002
穷举法示例:https://blog.csdn.net/u012806757/article/details/51056965