c语言 从键盘输入1个1~-20的整数n,在屏幕上输出口行由数字0和1构成的图形
时间: 2024-05-04 08:17:05 浏览: 16
以下是一个简单的 C 语言程序,可以实现输入一个整数 n,然后输出由数字 0 和 1 构成的图形,图形的行数为 n:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, i, j;
printf("请输入一个整数 n (-20 <= n <= 1):");
scanf("%d", &n);
if (n < -20 || n > 1) {
printf("输入的整数不在范围内!\n");
exit(0);
}
for (i = 1; i <= abs(n); i++) {
for (j = 1; j <= i; j++) {
printf("%d", j % 2);
}
printf("\n");
}
return 0;
}
```
程序首先提示用户输入一个整数 n,然后通过 scanf 函数读取用户输入的整数。接着,程序判断用户输入的整数是否在范围内,如果不在范围内,则输出错误信息并退出程序。
如果输入的整数在范围内,则使用两层循环输出由数字 0 和 1 构成的图形,其中外层循环控制行数,内层循环控制每一行中 0 和 1 的数量。具体来说,内层循环使用取模运算来轮流输出 0 和 1。
注意,在程序中我们使用了 abs 函数来获取输入整数的绝对值,这是因为我们需要输出的图形行数不能为负数。
相关问题
c语言数组实现:从键盘输入一个整数n ,编程输出n行的杨辉直角三角图形(n<=10)。
下面是使用 C 语言数组实现的代码,可以实现从键盘输入一个整数 n,然后输出 n 行的杨辉直角三角图形:
```c
#include <stdio.h>
int main() {
int n, i, j;
int a[10][10] = {0};
printf("请输入一个整数 n(n <= 10):");
scanf("%d", &n);
// 初始化杨辉三角
for (i = 0; i < n; i++) {
a[i][0] = 1;
for (j = 1; j <= i; j++) {
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
// 输出杨辉直角三角形
for (i = 0; i < n; i++) {
for (j = 0; j <= i; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}
```
运行示例:
```
请输入一个整数 n(n <= 10):5
1
1 2
1 3 3
1 4 6 4
1 5 10 10 5
```
从键盘输入一个整数n(1≤n≤10),打印出指定的十字图形,用C语言写出这个程序
思路:根据输入的整数n,分别打印出上下、左右两个十字的图形,注意边界的判断。
代码如下:
```
#include <stdio.h>
int main()
{
int n, i, j;
printf("请输入一个整数n(1≤n≤10):");
scanf("%d", &n);
// 打印上下十字
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
if (i == n / 2 + 1 || j == n / 2 + 1) {
printf("*");
} else {
printf(" ");
}
}
printf("\n");
}
// 打印左右十字
printf("\n");
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
if (j == n / 2 + 1 || i == n / 2 + 1) {
printf("*");
} else {
printf(" ");
}
}
printf("\n");
}
return 0;
}
```
运行结果示例:
```
请输入一个整数n(1≤n≤10):5
*
*
*****
*
*
*
*
*
*****
*
*
```