答案決議
- 4.1
- 4.2
- 4.3
- 4.4
- 4.5
- 4.6
- 4.7
- 4.8
- 4.8.1
- 8.1
- 8.2
- 8.3
4.1

解題思路
只需要在拿出一個空瓶子 盛放醋或者醬油 即可變數交換
int main()
{
int vinegar = 1;
int sauce = 2;
int empty=0;
//將vinegar倒入empty
empty = vinegar;
//把sauce倒入vinrgar
vinegar = sauce;
sauce=empty;
return 0;
}
4.2

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i, j, k = 0;
int arr[10] = { 0 };
//通過for回圈jiang10個數錄入陣列中
for (i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
}
k = arr[0];
i = 0;
//假設將第一個數設為最大的 然后與陣列每個數 比較
for (i = 0; i < 10; i++)
{
//如果他比選定的數大 那么將大數賦給他
if (arr[i] > k)
{
k = arr[i];
}
}
printf("%d",k);
return 0;
}
;代碼運行結果如圖

4.3

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int tmp = 0;
int i = 0;
int arr[3] = { 0 };
//依次錄入陣列元素
for (i = 0; i < 3; i++)
{
scanf("%d", &arr[i]);
}
int m = 0;
int n = 0;
int temp;
//通過排序演算法 將元素按從小到大的順序排好
for (m = 0; m < 3; m++)
{
for (n = 0; n < 3 - m - 1;n++)
{
if (arr[n] > arr[n + 1])
{
temp = arr[n];
arr[n] = arr[n + 1];
arr[n + 1] = temp;
}
}
}
//依次輸出
i = 0;
for (i = 0; i < 3; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
附上輸出圖

4.4

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i, j;
j = 0;
//for 回圈產生 1-100個整數即可
for (i = 0; i < 101; i++)
{
j = i + j;
}
printf("%d", j);
return 0;
}
4.5

#include<stdio.h>
int main()
{
int i = 0;
scanf("%d", &i);
//判斷 除以5和3的余數是否同時為0
if (i%5==0&&i%3==0)
{
printf("yes");
}
else
printf("no");
return 0;
}
4.6

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i, j, k;
k = 100;
int arr[101] = { 0 };
for (i = 0; i < 101; i++)
{
arr[i] = k++;//通過這個給陣列每個元素附上100-200
for (j = 2; j < arr[i]; j++)
{
if (arr[i] % j == 0)//判斷arr[i]這個元素是否是合數
{
arr[i] = 0;//合數直接置零
break;
}
}
}
int m = 0;
for (m = 0; m < 101; m++)
{
if (arr[m] != 0)//排除掉被置零的元素
{
printf("%d ", arr[m]);
}
}
return 0;
}

4.7

求最大公約數 老祖宗的更相減損術
更相減損術的第一步就是判斷兩個數得最大公約數是否為2
我們只需要將for回圈入口設定為**for (; i % 2 == 0&&j%2==0;)**只要要求的兩個數 i j 均可以同時整除2就可以進入回圈 我們還要增加一個變數m 確定除了幾次2 在后續補上
for (; i % 2 == 0&&j%2==0;)
{
i = i/2;
j = j / 2;
m++;
}
當我們輸入 i j 變數時 第二步就需要判斷 i j 誰大 為了方便 我們將i變數設定為較大變數 通過簡單的變數轉換
if (j > i)
{
a = i;
i = j;
j = a;
}

從本例可以看出 就是先用輸入的較大變數i減去較小變數j得到的差 然后差在和減數比較 較大的做被減數 小的做減數 直到減數和差相等
可見 回圈的出口就是減數和差相等,
設計思路 先相減在將 減數和差的較大值附給i
for (;;)
{
b = i - j;
if (j == b)
{
break;
}
if (b > j)
{
a = j;
j = b;
b = a;
}
i = j;
j = b;
}
最后如果m變數大于0那么因數就要乘以2的m倍 反之直接輸出
if (m > 0)
{
n = 2 * m * b;
printf("最大公約數是%d", n);
}
else
printf("最大公約數是%d", j);
附上整個
common()
{
int a = 0;
int n = 0;
int m = 0;
int i = 0;
int j = 0;
printf("請輸入被求數\n");
scanf("%d %d", &i, &j);
for (; i % 2 == 0&&j%2==0;)
{
i = i/2;
j = j / 2;
m++;
}
if (j > i)
{
a = i;
i = j;
j = a;
}
a = 0;
int b = 0;
for (; ; )
{
b = i - j;
if (j == b)
{
break;
}
if (b > j)
{
a = j;
j = b;
b = a;
}
i = j;
j = b;
}
if (m > 0)
{
n = 2 * m * b;
printf("最大公約數是%d", n);
}
else
printf("最大公約數是%d", j);
}
4.8

4.8.1
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main()
{
int i, j, k, m;
float n,p,q;
printf("請將方程化成標準形式AX^2+BX+C=0");
printf("請依次輸入A,B,C");
scanf("%d %d %d", &i, &j, &k);
m=j * j - 4 * i * k ;
if (m < 0)
{
printf("沒有實數根");
}
n = sqrt(m);//平方根函式
p = (n - j) / (2 * i);
q = (-n - j) / (2 * i);
printf("%.2f %.2f",p,q);
}
8.1

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main()
{
int arr[101] = { 0 };
int i, j, k;
k = 1900;
for (i =0; i < 101; i++)
{
arr[i] = k++;
//第一個條件
if (arr[i] % 4 == 0 && arr[i] % 100 != 0)
{
printf("%d ", arr[i]);
}
if (arr[i] % 400 == 0 && arr[i] % 100 == 0)
{
printf("%d ", arr[i]);
}
}
return 0;
}

8.2
上面已經寫了 見 4.8
8.3

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main()
{
int arr[10] = { 0 };
int i, j, k;//十個數傳入陣列
for (i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
}
int m, n;
for (m = 0; m < 10; m++)
{//冒泡排序 輸出最后一個即可
for (n = 0; n < 10 - m - 1; n++)
{
if (arr[n] > arr[n + 1])
{
k=arr[n];
arr[n ] = arr[n+1];
arr[n + 1] = k;
}
}
}
printf("%d", arr[9]);
return 0;
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/249565.html
標籤:其他
上一篇:阿里視頻點播工具類
下一篇:5G為全球數字化轉型注入新動力
