1.給定兩個整形變量的值,將兩個值的內容進行交換。
此題思路:定義臨時變量c
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 3, b = 4, c; //定義變量
printf("初始值:%d %d\n", a, b);
c = a;
a = b;
b = c;
printf("交換後:%d %d\n", a, b);
system("pause");
return 0;
}
執行結果如下:
2 不允許創建臨時變量,交換兩個數的內容(附加題)
此題思路:運用a和b的差值進行運算交換
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 3, b = 4;
printf("初始值:%d %d\n", a, b);
a = a + b;
b = a - b;
a = a - b;
printf("交換後:%d %d\n", a, b);
system("pause");
return 0;
}
執行結果如下:
3.求10 個整數中最大值。
此題思路:在不定義指針變量的情況下求出最大值。
注意:建議不要使用數組進行逐個比較,原因數組索引必須爲正整數或邏輯值。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int num, max=0x80000000;//給max附一個最小值
for (int i = 0; i < 10; i++){
scanf("%d", &num);
if (num>max)
max = num;
}
printf(" %d\n", max );
system("pause");
return 0;
}
執行結果如下:
4.將三個數按從大到小輸出
此題思路:兩兩比較,互相交換保證大在前小在後
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b, c, m;
scanf(" %d %d %d" ,&a,&b,&c);
if (a<b)
{
m = a; a = b; b = a;
}
if (a<c)
{
m = a; a = c; c = a;
}
if (b<c)
{
m = b; b = c; c = b;
}
printf("從大到小排序爲:%d %d %d\n", a, b, c);
system("pause");
return 0;
}
執行結果如下:
5.求兩個數的最大公約數。
解題思路1:對i進行遍歷,是否能被兩個整數同時整除(比較慢)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=0, b=0, max=0;
scanf("%d %d", &a, &b);
int smaller;
smaller = a > b ? b : a;
for (int i = 2; i <= smaller; i++){
if (a%i == 0 && b%i == 0){
max = i;
}
}
printf("最大公約數:%d\n", max);
system("pause");
return 0;
}