2019年寒假作业1编辑总结
生活随笔
收集整理的這篇文章主要介紹了
2019年寒假作业1编辑总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:7-1 打印沙漏 (20 分)
本題要求你寫個程序把給定的符號打印成沙漏的形狀。例如給定17個“*”,要求按下列格式打印************ ***** 所謂“沙漏形狀”,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大到小順序遞減到1,再從小到大順序遞增;首尾符號數相等。給定任意N個符號,不一定能正好組成一個沙漏。要求打印出的沙漏能用掉盡可能多的符號。輸入格式:
輸入在一行給出1個正整數N(≤1000)和一個符號,中間以空格分隔。
輸出格式:
首先打印出由給定符號組成的最大的沙漏形狀,最后在一行中輸出剩下沒用掉的符號數。
輸入樣例:
19 *
輸出樣例:
(1)實驗代碼
#include <stdio.h> int main() {int N;char ch;int sum = -1, csum, k = -1, i, j, I, K;scanf("%d %c", &N, &ch);for (i = 0; sum <=N; i++){csum = sum;sum = csum + (k + 2) * 2;k = k + 2;}I = i-1;//跳出循環的時候是sum大于N之后所以i多進行啦兩次只-1是因為后面的循環是用的'<'K = k-2;//同理k同樣的原因多加啦一次2for (i = 0; i < I; i++){for (j = 0; j < i; j++)//補充空格printf(" ");for (j = 0; j < K; j++){printf("%c", ch);}printf("\n");K = K - 2;}K = K+4;//跳出上面循環的時候多減啦次2,但是由于沙漏的頸部一個‘*’只用打印一次所直接跳到打印三個‘***’所以再加2,就是加4for (i = I-1; i > 0; i--){for (j = 1; j < i; j++)//補充空格printf(" ");for (j = 0; j <K; j ++ ){printf("%c", ch);}printf("\n");K = K + 2;}printf("%d", N - csum);return 0; }(2)設計思路
第一步:定義變量(整型與字符型) 第二步:用for語句打印出上半部分的行數,上下倆部分分別用一個for語句確定行數,并在其中嵌套一個for語句來確定“*”還有空格數量 第三步:打印結果
(3)本題調試過程碰到問題及解決辦法
首先看見這個題目的時候我真的沒有什么思路,就感覺和以前做過的一個題目有點像,但是還是想不出來,最后是問同學還有百度看別人的博客才知道這么做,但是一開始的時候有點看不懂別人的代碼,難點在于將沙漏形狀打印出來。
(4)運行結果截圖
轉載于:https://www.cnblogs.com/Gzh001007/p/10363052.html
總結
以上是生活随笔為你收集整理的2019年寒假作业1编辑总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 力扣——按递增顺序显示卡牌
- 下一篇: @bzoj - 4384@ [POI20