目錄
//完全平方數(shù)且其中兩位數(shù)字兩相等
//回文數(shù)
//求a+aa+aaa+aaaa+aaaaa+……的和,其中a是一個數(shù)字
//喝汽水問題
//上三角矩陣判斷
//有序數(shù)列合并
//有序數(shù)列判斷
//奇偶排序:奇在前,偶在后
編寫程序?qū)ふ壹仁峭耆椒綌?shù),又有兩位數(shù)字相同的三位正整數(shù),例如121、144等。要求統(tǒng)計滿足該條件的整數(shù)個數(shù),并從大到小打印這些整數(shù)。
#define _CRT_SECURE_NO_WARNINGS
#includeint main()
{
int num = 0;
for (num = 100; num<= 999; num++)
{
int i = 10;
while(i*i<=num)//先找到平方數(shù),再看是不是有兩個相等,可以提高效率
{
int bai = num / 100;
int ge = num % 10;
int shi = (num - 100 * bai - ge) / 10;//孩子在這里卡了好久嗚嗚嗚,千萬別忘了 /10 !!
if (num == i * i)
if(bai == shi || bai == ge || shi == ge)
{
printf("%d ", num);
}
i++;
}
}
return 0;
}
//回文數(shù)回文是指正反序文字相同,如,LeveL,若是則輸出“Yes”,否則輸出“No”
#define _CRT_SECURE_NO_WARNINGS
#includeint main()
{
char arr[10];
printf("請輸入一個字符串:");
scanf("%s", arr);
int sz = sizeof(arr) / sizeof(arr[0]);
int left = 0;
int right = sz - 1;
int flag = 1;
for (left = 0, right = sz - 1; left<= right; left++, right--)
{
if (arr[left] != arr[right])//只要有一對不同,跳出循環(huán)
{
flag = 0;
break;
}
}
if (flag)
{
printf("Yes\n");
}
else
{
printf("No\n");
}
return 0;
}
//求a+aa+aaa+aaaa+aaaaa+……的和,其中a是一個數(shù)字這題思路巨多,可以a*1+a*11+a*111+……,也可以從后往前加,每次 / 10,等等。
int main()
{
int n = 0;//總共幾項
int a = 0;//a+aa+aaa+……
scanf("%d %d", &a, &n);
int sum = 0;//計算n項的和
int i = 0;
int k = 0;//k為其中一項
for (i = 0; i< n; i++)//循環(huán)計算每一項
{
k = k * 10 + a;
sum += k;
}
printf("%d\n", sum);
return 0;
}
喝汽水,1瓶汽水1元,2個空瓶可以換一瓶汽水,給20元,可以買多少汽水
其實由數(shù)學歸納法不難得出 total = empty * 2 - 1 ,不過這樣這題就沒有意義了,這里用點不一樣的~
#define _CRT_SECURE_NO_WARNINGS
#includeint main()
{
int money = 0;//你有多少錢
int total = 0;//一共能買多少瓶
int empty = 0;//空瓶數(shù)量
scanf("%d", &money);
total = money;//一開始買了多少瓶
empty = money;//一開始喝完后空瓶的數(shù)量
//從這里開始漫漫環(huán)保路(省錢路)
while (empty >= 2)//只要空瓶剩兩個以上就可兌換
{
total += (empty / 2);//空瓶能兌換的汽水
empty = empty / 2 + empty % 2;//前面是兌換后喝完的空瓶,后面是兌換前落單的空瓶
}
printf("%d\n", total);
return 0;
}
//上三角矩陣判斷對角線以下元素均為0則是上三角矩陣,如:
1 2 3? ? ? ? ?
0 4 5? ? ? ? ?
0 0 6
#define _CRT_SECURE_NO_WARNINGS
#includeint main()
{
printf("請問想輸入幾行幾列?:");
int n = 0;
scanf("%d", &n);
int arr[10][10];
printf("請輸入矩陣:):\n");
int i = 0;
int j = 0;
//輸入
for (i = 0; i< n; i++)
{
for (j = 0; j< n; j++)
{
scanf("%d", &arr[i][j]);
}
}
//判斷
int flag = 1;//flag我們已經(jīng)用了很多次了,這里就不贅述為什么了
for (i = 0; i< n; i++)
{
//觀察可知滿足條件的矩陣中對角線下 j 都小于 i
for (j = 0; j< i; j++)
{
if (arr[i][j] != 0)
{
flag = 0;
goto end;//break只能跳出一層循環(huán),而goto end 想去哪就去哪
} //哦吼吼 ,新用法,有沒有學到??
}
}
end://注意這里是冒號不是分號?。?!
printf("是否為上三角矩陣?:");
if (flag)
{
printf("yes\n");
}
else
{
printf("no\n");
}
return 0;
}
將兩組有序數(shù)列合并?
方法很多,可以直接現(xiàn)將兩組數(shù)組存入新數(shù)組中再排序,不過這樣原數(shù)組有序無序都不重要了,這里我們物盡其用,既然原數(shù)組已經(jīng)有序,就可以邊比較邊排列
#define _CRT_SECURE_NO_WARNINGS
#includeint main()
{
int arr1[10];
int arr2[10];
int arr3[20];//數(shù)組3元素是前兩數(shù)組元素之和
int m = 0;
int n = 0;
printf("數(shù)組1和數(shù)組2分別有幾個元素?:");
scanf("%d%d", &m, &n);
int i = 0;
int j = 0;
int k = 0;
//輸入
printf("請輸入第一個數(shù)組:");
for (i = 0; i< m; i++)
{
scanf("%d", &arr1[i]);
}
printf("請輸入第二個數(shù)組:");
for (i = 0; i< n; i++)
{
scanf("%d", &arr2[i]);
}
//邊比較邊合并
i = 0;//這一步千萬不能少?。?!
while (i< m && j< n)//前提條件:數(shù)組訪問不會越界
{
if (arr1[i]< arr2[j])
{
arr3[k] = arr1[i];
i++;
k++;
}
else
{
arr3[k] = arr2[j];
j++;
k++;
}
}
if (i == m)//arr1先訪問完
{
//把arr2中剩余元素放在arr3中
while (j< n)
{
arr3[k] = arr2[j];
j++;
k++;
}
}
else//arr2先訪問完
{
//把arr1中剩余元素放在arr3中
while (i< m)
{
arr3[k] = arr1[i];
i++;
k++;
}
}
//打印
for (k = 0; k< m + n; k++)
{
printf("%d ", arr3[k]);
}
return 0;
}
判斷一組數(shù)是否有序,相同也算有序?
#define _CRT_SECURE_NO_WARNINGS
#includeint main()
{
int n = 0;
scanf("%d", &n);
int arr[10];
int i = 0;
//還是用flag,我愿稱之為flag萬能法
int flag1 = 0;//標記升序
int flag2 = 0;//標記降序
for (i = 0; i< n; i++)
{
scanf("%d", &arr[i]);
if (i >0)//從第二個數(shù)開始就可以和第一個數(shù)比較了
{
//如果一直升序:flag1=1,flag2=0
if (arr[i - 1]< arr[i])
{
flag1 = 1;
}
//如果一直降序:flag1=0,flag2=1
else if (arr[i - 1] >arr[i])
{
flag2 = 1;
}
}
}
if (flag1 + flag2< 2)//即等于0或等于1
printf("sorted\n");
else
printf("unsorted\n");
return 0;
}
將一組數(shù)組中奇數(shù)放在前面,偶數(shù)放在后面
不強調(diào)新數(shù)組奇偶數(shù)有序
#define _CRT_SECURE_NO_WARNINGS
#includevoid move(int arr[], int sz)
{
int left = 0;
int right = sz - 1;
//從前往后找偶數(shù),從后往前找奇數(shù)
while (left< right)
{
//找偶數(shù)
while ((left< right) && (arr[left] % 2 == 1))
{
left++;
}
//找奇數(shù)
while ((left< right) && (arr[right] % 2 == 0))
{
right--;
}
//奇偶交換
if (left< right)
{
int tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
}
}
int main()
{
int arr[10] = { 0 };
printf("請輸入十個整數(shù):");
int i = 0;
int sz = sizeof(arr)/sizeof(arr[0]);
for (i = 0; i< sz; i++)
{
scanf("%d", &arr[i]);
}
move(arr, sz);
for (i = 0; i< sz; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
j
好長時間沒有更新小練習了,這七道題中有些題有一點點小難度,一起加油吧!!
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)頁題目:C語言小練習(6)-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://www.rwnh.cn/article8/pcsip.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、App開發(fā)、ChatGPT、定制網(wǎng)站、Google、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容