C语言题目整理

for(;;) Problem D: 打印金字塔

Time Limit: 1 Sec Memory Limit: 64 MB

Submit: 6187 Solved: 3736

Description

请编写程序输出双层金字塔图形。

Input

多个测试数据。每个测试数据输入一个整数n(1 <= n <= 9)

Output

输出n层双层金字塔。

Sample Input

1 3 Sample Output

* * *** ***** *** * HINT

用双重循环做,外循环代表行数,第一个内循环输出空格,第二个内循环输出* for(;;) {

for(;;) {

}//输出空格

{

}//输出*

}//外循环

#include int main() {

int n,i,j,k;

while (scanf(\ {

for (i=1;i<=n;i++) {

for (j=1;j<=n-i;j++) //注意j的范围 printf(\

for (k=1;k<2*i;k++) //注意k的范围 printf(\ printf(\ }

for (i=n+1;i<=2*n-1;i++) {

for (j=1;j<=i-n;j++) //注意j的范围 printf(\

for (k=1;k<2*(2*n-i);k++) //注意k的范围 printf(\ printf(\ }

} }

Problem C: 新年挂灯笼

Time Limit: 1 Sec Memory Limit: 128 MB

Submit: 933 Solved: 459

Description

又是新的一年,家家户户挂灯笼。请你编写一个程序,能根据需要打印出灯笼的图案。

Input

- 1 -

多组测试数据,先输入一个整数T,表示组数,然后输入然后输入t行,每行输入1个整数n(n不会大于9),代表灯笼上半部分的层数

Output

对于每组测试数据输出对应的灯笼图案

Sample Input

3 1 2 3 Sample Output

* ** **** ** *** ***** ******* ***** *** #include int main() {

int T,m,n,i,j,k; scanf(\

for(m=1;m<=T;m++){ while (scanf(\ {

for (i=1;i<=n;i++) {

for (j=1;j<=n-i;j++) //注意j的范围 printf(\

for (k=1;k<2*i+n-1;k++) //注意k的范围 printf(\ printf(\

}

for (i=n+1;i<=2*n-1;i++) {

for (j=1;j<=i-n;j++) //注意j的范围 printf(\

for (k=1;k<2*(2*n-i)+n-1;k++) //注意k的范围 printf(\ printf(\ }

break; } } }

Problem A: 零起点学算法80——逆序输出(数组练习)

Time Limit: 1 Sec Memory Limit: 64 MB

Submit: 8884 Solved: 3256

Description

数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组数组类型说明 在C语言中使用数组必须先进行类型说明。 数组说明的一般形式为: 类型说明符 数组名 [常量表达式],……; 其中,类型说明符是任一种基本数据类型或构造数据类型。 数组名是用户定义的数组标识符。 方括号中的常量表达式表示数据元素的个数,也称为数组的长度。例 int a[10]; 说明整型数组a,有10个元素。 float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。 char ch[20]; 说明字符数组ch,有20个元素。

Input

多组测试数据。第一行输入一个整数T表示测试数据组数每组首先输入1个整数n,然后输入n个整数(不大于20)

Output

对于每组测试数据按照输入相反的顺序输出n个数据

Sample Input

- 2 -

2 3 1 2 3 5 2 3 1 4 5 Description

找出数组中最大的元素的下标。

Input

多组测试,每组先输入一个不大于10的整数n 然后是n个整数

Sample Output

3 2 1 5 4 1 3 2 Output

输出这n个整数中最大的元素及下标值

Sample Input

4 1 4 5 6

#include int main() {

int T,n,k,i,j,a[20]; scanf(\ for(k=1;k<=T;k++) {

while(scanf(\ {

for(i=0;i

scanf(\ }

for(j=n-1;j>0;j--) {

printf(\ }

printf(\break; } } }

Sample Output

6 3 Problem B: 零起点学算法81——找出数组中最大元素的位置(下标值)

Time Limit: 1 Sec Memory Limit: 64 MB

Submit: 8840 Solved: 3524

#include int main() {

int n,k,i,a[9],ans;

while(scanf(\ {

scanf(\ ans=a[0]; k=0;

for(i=1;i

scanf(\ if(ans

printf(\}

- 3 -

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4