// sl.cpp : Defines the entry point for the console application.//#include <stdio.h>void getInput(int* _out_n)...{ printf("Please enter n:"); scanf("%d",_out_n); printf(" ");}//1 画个空心的梯形吧//编程,输入 n ,输出如下例( n=5 )所示的 高和上底均为 n 的等腰空心梯形。 // * * * * * // * * // * * // * * //* * * * * * * * * * * * * void f1(int n)...{ int i = 0; int j = 0; for (j = 1; j <= n-1; j++ ) ...{ printf(" "); } for (j = 1; j <= n; j++ ) ...{ printf("*"); } printf(" "); for (i = 1; i < n-1; i++) ...{ for (j = 1; j <= 2*n+i-1; j++) ...{ if (j == n-i || j == 2*n+i-1) ...{ printf("*"); } else ...{ printf(" "); } } printf(" "); } for (j = 1; j <= 3*n-2; j++ ) ...{ printf("*"); } printf(" ");}////2 小明被罚//七岁的小明在家中呆着无聊,东跑西窜,招猫逗狗,老爹很生气,后果很严重!被老爸罚去码砖头,要求码成等腰三角形的形状。小明不知道什么是“等腰三角形”,老爸也不解释,只好去问叔叔。//叔叔用数学语言讲了半天等腰三角形,小明还是不明白,没办法,叔叔只好为小明编写一个程序,在屏幕上显示出等腰三角形的形状,然后再让小明按照显示的形状去码砖头。你就是小明的叔叔,你来编写这个程序吧。输入: 输入等腰三角形的高h。输出: 等腰三角形。// ps:这道题有问题,只有高h可以任意发挥;void f2(int h)...{ for (int i = 1; i < h; i++) ...{ for (int j = 1; j < h+i-1; j++) ...{ if (j < h-i) ...{ printf(" "); } else ...{ printf("*"); } } printf(" "); }}//3 编写程序,输出 1000 以内的所有完数及其因子。所谓完数是指一个整数的值等于它的因子之和,例如 6 的因子是 1 、 2 、 3 ,而 6=1+2+3 ,故 6 是一个完数。void f3()...{ for (int i = 6; i <=1000; i++) ...{ int temp = 0; for (int j = 1; j <= i/2; j++) ...{ if (0 == i%j) ...{ temp += j; } } if (temp == i) ...{ printf("%d=",i); //for (int j = 1; j <= i/2; j++) //{ // if (0 == i%j) // { // printf("%d ", j); // } //} printf(" "); } } printf("hello kitty "); getchar();} //4 一个马戏团表演, n 个座位全满,全部门票收入是 120 元,现在知道,男人每人 5 元,女人每人 2 元,小孩每人 1 角。编程,输入总人数 n ,输出满足要求的男人、女人和小孩人数的全部方案。 , 若 n 人无法满足条件,则输出 "No output"( 双引号内的部分为输出部分 ) 。 //输入:人数 n输出:男人、女人和小孩人数 // test//for (int i = 0; i < 100; i++)//{// if (f4(i));//}bool f4(int n)...{ int i = 0; int j = 0; int k = 0; bool b = false; for (i = 0; i <= n; i++) ...{ for (j = 0; j<= n-i; j++) ...{ for (k = 0; k<= n-i-j; k++) ...{ if (1200 == (i*50 + j*20 + k*1)) ...{ printf("i:%d, j:%d, k:%d ", i, j, k); b = true; } } } } if (!b) ...{ printf("No output "); } return b;}//5 黑色星期五 在西方,星期五和数字 13 都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。所以,不管哪个月的 13 日又恰逢星期五就叫 “ 黑色星期五 ” 。输入某年年号和该年的元旦是星期几( 1-7 ),输出该年所有的 “ 黑色星期五 ” 的日期(年 / 月 / 日) 输入: 4 位年号和该年元旦是星期几输出:所有的 “ 黑色星期五 ” 的日期(年 / 月 / 日)int isLeapYear(int year) ...{ int leap = 0; if(year%100 == 0 && year%400 ==0) leap = 1; else if(year%100 != 0 &&year%4 ==0) leap = 1; return leap; } void f5()...{ int daysOfMonth[] =...{31,28,31,30,31,30,31,31,30,31,30,31}; int y,w; int i; int offset[12]; scanf("%d %d",&y,&w); if(isLeapYear(y)) daysOfMonth[1] = 29; offset[0] = 12; for(i = 1;i < 12;i++) ...{ offset[i] = offset[i-1] + daysOfMonth[i-1]; if((w+offset[i])%7 == 5) printf("%d/%d/%d ",y,i+1,13); }}//6猴子吃桃子 //有一只猴子,第一天摘了若干个桃子 ,当即吃了一半,但还觉得不过瘾 ,就又多吃了一个。第 2 天早上又将剩下的桃子吃掉一半,还是觉得不过瘾,就又多吃了两个。以后每天早上都吃了前一天剩下的一半加天数个(例如,第 5 天吃了前一天剩下的一半加 5 个)。到第 n 天早上再想吃的时候,就只剩下一个桃子了。 //输入:天数 n输出:第一天的桃子个数//int n = 0;//getInput(&n);//printf("%d",f6(n));int f6(int n)...{ if (n == 1) ...{ return 1; } else return 2*(f6(n-1)+n-1);}//7 若正整数A的全部约数(包括1,不包括A本身)之和等于B ; 且整数B的全部约数(包括1,不包括B本身)之和等于A,则 A 、 B 为亲密数。编程,输入正整数A,输出亲密数 A , B(A<=B) ,若不存在亲密数,则输出 No output 。 //输入:正整数 A 输出:形如 A-B 的 亲密数对 //for (int i = 1; i < 1000; i++)//{// f7(i);//}void f7(int a)...{ int t1 = 0; for (int i = 1; i <= a/2; i++) ...{ if (a%i ==0) ...{ t1 += i; } } int t2 = 0; for (int j = 1; j <= t1/2; j++) ...{ if (t1%j == 0) ...{ t2 += j; } } if (t2 == a) ...{ printf("%d-%d ",a,t1); } //else //{ // printf("No output "); //}}//8 输出一个字母K吧//输入 n 值,输出如图所示图形 (当 n=4)//* * //* * //* * //* //* * //* *//* *//int n = 0; //getInput(&n);//f8(n);void f8(int n)...{ for (int i = 1; i < n; i++) ...{ printf("*"); for (int j = 2; j <= n-i+1; j++) ...{ if (j == n-i+1) ...{ printf("*"); } else ...{ printf(" "); } } printf(" "); } printf("* "); for (int i = 2; i <= n; i++) ...{ printf("*"); for (int j = 2; j <= i; j++) ...{ if (j == i) ...{ printf("*"); } else ...{ printf(" "); } } printf(" "); } }//9 画一个字母组成的菱形 输入顶行字符和图形的高,输出如图所示图形。//例如顶行字符为 ' A ' ,图形的高为 5 // A // B B // C C // D D //E E // D D // C C // B B // A //int n = 0;////getInput(&n);////f9(n);void f9(int n)...{ char t='A'; for (int i = 1; i <= n; i++) ...{ for (int j = 1; j <= n+i-1; j++) ...{ if (j == n-i+1 || j == n+i-1) ...{ printf("%c",t); } else ...{ printf(" "); } } t++; printf(" "); } t -= 2; for (int i = 2; i <= n; i++) ...{ for (int j = 1; j <= 2*n-i; j++) ...{ if (j == i || j == 2*n-i) ...{ printf("%c",t); } else ...{ printf(" "); } } t--; printf(" "); }}//10 输入 n 值,输出如图回型方阵 ,例如:当 n=5 时 : //3 3 3 3 3 //3 2 2 2 3 //3 2 1 2 3 //3 2 2 2 3 //3 3 3 3 3//int n = 0;////getInput(&n);////f10(n);void f10(int n)...{ int m = n/2+n%2; int i,j; int k,a,b; for( i = 1; i <= n; i++) ...{ b = i; a = n+1-i; if( b > a) k=b,b=a,a=k; k = m ; for(j = 1; j <= n; j++) ...{ printf("%d",k); if (j< b) k--; else if(j>=a) k++; } printf(" "); } printf(" -- 回 型 方 阵 -- "); }int main(int argc, char* argv[])...{ int n = 0; getInput(&n); f10(n); return 0;}