目錄

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