C語言中循環(huán)嵌套的應(yīng)用方式
循環(huán)嵌套的應(yīng)用
循環(huán)嵌套可以使復(fù)雜的問題結(jié)構(gòu)化,把一個功能的實現(xiàn)拆分成一個一個更小的功能,然后再實現(xiàn),在此實現(xiàn)的過程中必須要注意結(jié)構(gòu)上的邏輯性和該邏輯的正確性,要保證每一個小的功能能夠完全正確,最終實現(xiàn)一個完整的循環(huán)。
1.求Sn=a+aa+aaa+aaaa+aaaaa的前5項之和,其中a是一個數(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;//幾個這類數(shù)相加
int sum = 0;//求和的結(jié)果
int ret = 0;//儲存計算好的每一項
int i = 0;
printf("請輸入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ù)”是指一個n位數(shù),其各位數(shù)字的n次方之和確好等于該數(shù)本身,如:153=13+53+3^3,則153是一個“水仙花數(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.儲存該數(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++)//打印上半個菱形
{
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++)//打印下半個菱形
{
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;
}附帶一個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é)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C語言不使用strcpy函數(shù)如何實現(xiàn)字符串復(fù)制功能
這篇文章主要給大家介紹了關(guān)于C語言不使用strcpy函數(shù)如何實現(xiàn)字符串復(fù)制功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
C語言詳細(xì)分析講解內(nèi)存管理malloc realloc free calloc函數(shù)的使用
C語言內(nèi)存管理相關(guān)的函數(shù)主要有realloc、calloc、malloc、free等,下面這篇文章主要給大家介紹了關(guān)于C語言內(nèi)存管理realloc、calloc、malloc、free函數(shù)的相關(guān)資料,需要的朋友可以參考下2022-05-05
C++實現(xiàn)LeetCode(102.二叉樹層序遍歷)
這篇文章主要介紹了C++實現(xiàn)LeetCode(102.二叉樹層序遍歷),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07

