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