C語言中循環(huán)嵌套的應(yīng)用方式
循環(huán)嵌套的應(yīng)用
循環(huán)嵌套可以使復(fù)雜的問題結(jié)構(gòu)化,把一個(gè)功能的實(shí)現(xiàn)拆分成一個(gè)一個(gè)更小的功能,然后再實(shí)現(xiàn),在此實(shí)現(xiàn)的過程中必須要注意結(jié)構(gòu)上的邏輯性和該邏輯的正確性,要保證每一個(gè)小的功能能夠完全正確,最終實(shí)現(xiàn)一個(gè)完整的循環(huán)。
1.求Sn=a+aa+aaa+aaaa+aaaaa的前5項(xiàng)之和,其中a是一個(gè)數(shù)字(例如:2+22+222+2222+22222)
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include<windows.h> int main() { int a = 0;//數(shù)字 int n = 0;//幾個(gè)這類數(shù)相加 int sum = 0;//求和的結(jié)果 int ret = 0;//儲(chǔ)存計(jì)算好的每一項(xiàng) int i = 0; printf("請(qǐng)輸入s和n:"); scanf("%d %d", &a, &n); for (i = 0; i < n; i++) { ret = ret * 10 + a; sum += ret; } printf("sum=%d\n", sum); system("pause"); return 0; }
2.求出0~100000之間的所有“水仙花數(shù)”并輸出。(“水仙花數(shù)”是指一個(gè)n位數(shù),其各位數(shù)字的n次方之和確好等于該數(shù)本身,如:153=13+53+3^3,則153是一個(gè)“水仙花數(shù)”。)
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include<math.h> #include<windows.h> int main() { int i = 0; for (i = 0; i < 100000; i++) { //判斷是否為水仙花數(shù) /*1.儲(chǔ)存該數(shù)的位數(shù)*/ int sum = 0; int count = 1; int tmp = i; while (tmp /=10) { count++; } /*2.得到i的每一位,求出它的每一位次方數(shù)之和*/ tmp = i; while (tmp) { sum += pow(tmp % 10, count); tmp/=10; } /*判斷*/ if (sum == i) { printf("%d\t", i); } } system("pause"); return 0; }
3.用C語言在屏幕上輸出以下圖案:
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include<math.h> #include<windows.h> int main() { int line = 0; scanf("%d", &line); int i = 0; for (i = 0; i < line; i++)//打印上半個(gè)菱形 { int j = 0; for (j = 0; j < line - 1 - i; j++)//先空格 { printf(" "); } for (j = 0; j < 2 * i + 1; j++)//再"*" { printf("*"); } printf("\n"); } for (i = 0; i < line - 1; i++)//打印下半個(gè)菱形 { int j = 0; for (j = 0; j <=i ; j++)//先空格 { printf(" "); } for (j = 0; j < 2 * (line - 1 - i) - 1; j++)//再"*" { printf("*"); } printf("\n"); } system("pause"); return 0; }
循環(huán)嵌套輸出圖形問題
輸出
*
***
*****
*******
*********
#include<stdio.h> int main() { int i,j; for(i=1;i<=5;i++){ ?? ?for(j=1;j<=2*5-2*i;j++) ?? ? ? ?printf(" ");? ?? ?for(j=1;j<=i*2-1;j++) ?? ??? ?printf("*"); printf("\n"); } return 0; }
輸出
*
***
*****
*******
*********
#include<stdio.h> int main() { int i,j; for(i=1;i<=5;i++){ ?? ?for(j=1;j<=5-i;j++) ?? ?printf(" ");? ?? ?for(j=1;j<=i*2-1;j++) ?? ??? ?printf("*");? ? ? ? ? printf("\n"); } return 0; }
輸出
*
***
*****
***
*
#include<stdio.h> #include<math.h> int main() { ?? ?int i,j; ?? ?for(i=1;i<=5;i++){ ?? ??? ?for(j=1;j<=abs(3-i);j++) ?? ??? ??? ?printf(" "); ?? ??? ?for(j=1;j<=(2*(3-abs(3-i))-1);j++) ?? ??? ??? ?printf("*"); ?? ??? ?printf("\n"); ?? ?} ?? ?return 0; }
圖形問題模板:
#include<stdio.h> int main() { int i,j; for(i=1;i<=行數(shù);i++){ ? ? for(j=1;j<=第i行空格數(shù)(找規(guī)律);j++) ? ? printf(" ");? ? ? for(j=1;j<=第i行圖形數(shù)(找規(guī)律);j++) ? ? ? ? printf("圖形");? printf("\n"); } return 0; }
附帶一個(gè)99乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
#include<stdio.h> int main() { int i,j; for(i=1;i<=9;i++){ ?? ?for(j=1;j<=i;j++) ?? ? ? ?printf("%d*%d=%d\t",j,i,j*i);? printf("\n"); } return 0; }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C++程序中main(int argc, char *argv[])函數(shù)的參數(shù)意義
這篇文章主要介紹了C++程序中main(int argc, char *argv[])函數(shù)的參數(shù)意義,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09C語言?超詳細(xì)模擬實(shí)現(xiàn)單鏈表的基本操作建議收藏
單鏈表是后面要學(xué)的雙鏈表以及循環(huán)鏈表的基礎(chǔ),要想繼續(xù)深入了解數(shù)據(jù)結(jié)構(gòu)以及C語言,我們就要奠定好這塊基石!接下來就和我一起學(xué)習(xí)吧2022-03-03詳解C++編程中的sizeof運(yùn)算符與typeid運(yùn)算符
這篇文章主要介紹了C++編程中的sizeof運(yùn)算符與typeid運(yùn)算符,是C++入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-01-01Visual?Studio下Eigen庫環(huán)境配置方式
這篇文章主要介紹了Visual?Studio下Eigen庫環(huán)境配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12