首页 > 系统相关 >linuxC语言day3

linuxC语言day3

时间:2024-12-02 21:04:04浏览次数:8  
标签:argc 奇数 int day3 C语言 char 菱形 linux include

描述 :* 组成的菱形图案,用户输入一个奇数n,表示菱形的最大宽度(即中间一行的星号数)。程序应该使用while循环生成这个菱形图案。

1.利用while循环实现操作

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int n,i=1,j=1,b,c;
	printf("请输入一个奇数:");
	scanf("%d",&n);
	b=(n+1)/2;
	while(i<=b){
		j=i;
		while(j<b){
	   		printf(" ");
			j++;
		}
		c=1;
		while(c<=i*2-1){
			printf("*");
			c++;
		}
		printf("\n");
		i++;
	}
	while(i<=n){
		j=1;
		while(j<=i-b){
	   		printf(" ");
			j++;
		}
		c=1;
		while(c<=n-(i-b)*2){
			printf("*");
			c++;
		}
		printf("\n");
		i++;
	}
	return 0;
}

2.利用数组和for循环实现操作

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{   int n,i,j,a=0,b=0;
	printf("请输入一个奇数:");
	scanf("%d",&n);
	char s[n][n];
	for(i=0;i<n;i++){
		for(j=0;j<n;j++){
			s[i][j]=' ';
		}
	}
	for(i=(n-1)/2;i>=0;i--){
		for(j=a;j<n-b;j++){
			s[i][j]='*';
			s[n-i-1][j]='*';
		}
		a++;
		b++;
	}
	for(i=0;i<n;i++){
		for(j=0;j<n;j++){
			printf("%c",s[i][j]);
		}
		printf("\n");
	}
	return 0;
}

3.利用for循环和if语句实现操作

分析过程:运用数学思维将问题转化成直角坐标系菱形区域的求解,首先建立一个直角坐标系,将x轴用i代替,y轴用j代替;其次做出一个边长为n的正方形;将菱形ABCD的四条边用方程的形式表示出,直线AB、CD、AC、BD围起的区域就是 * 的位置,菱形外的区域就是空格的位置。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int i,j,n,a,b;
	printf("请输入一个奇数:");
	scanf("%d",&n);
	a=(n-1)/2,b=(n-1)*3/2;
	for(i=0;i<n;i++){
		for(j=0;j<n;j++){
			if(j>=i-a&&j<=i+a&&j>=-i+a&&j<=-i+b){
				printf("*");
			}else{
				printf(" ");
			}
		}
		printf("\n");
	}
	return 0;
}


————————————————

标签:argc,奇数,int,day3,C语言,char,菱形,linux,include
From: https://blog.csdn.net/m0_67569906/article/details/144198133

相关文章

  • 实验五 C语言指针应用编程
    实验五C语言指针应用编程实验任务1——数组求最大最小值#include<stdio.h>#defineN5voidinput(intx[],intn);voidoutput(intx[],intn);voidfind_min_max(intx[],intn,int*pmin,int*pmax);intmain(){ inta[N]; intmin,max; printf("录入%d个数......
  • C语言课后作业
    C语言指针实现最小值与第一个数、最大值与最后一个数交换#include<stdio.h>intmain(){printf("请输入十个整数:");intnum[10];int*pMin,*pMax,*pTemp;int*p=num;//指向数组第一个元素的指针pMin=pMax=p;//初始化最小和最大值......
  • Linux操作系统下的进程通信
    目录1.进程通信的概念2.管道1.匿名管道pipe函数2.命名管道mkfifo函数3.内存映射mmap()函数munmap()函数4.消息队列消息队列函数5.总结 管道:内存映射消息队列1.进程通信的概念    进程间通信简称为IPC(Interprocesscommunication),进程间通信就是......
  • Linux history 命令详解
    简介history 命令显示当前 shell 会话中以前执行过的命令列表。这对于无需重新输入命令即可重新调用或重新执行命令特别有用。示例用法显示命令历史列表history#示例输出如下:1ls-l2cd/var/log3catsyslog执行历史记录中的命令!<number>!2#number表......
  • linux-11 关于shell(十)执行入口、模数
      比如说在系统刚刚启动的时候,这里要求我们进行登录,我输入用户名,然后输入密码,就可以正常登录,正常登录以后,会显示什么,叫命令提示符对吧?叫做prompt,我们把它称为叫命令提示符。如下图,那就意味着我们在底下可以输入命令了,对吧?既然叫命令提示符,那么所输入的一定得是命令,要注......
  • 实验5 C语言指针应用编程
    一,实验目的1,深度理解使用指针变量间接访问数据,代码2,会使用指针变量间接访问一维数组元素,二维数组元素3,会使用指针变量处理字符串4,会使用指针变量作为函数参数(形参,实参)和返回值5,能灵活应用数组,指针,函数,编程解决实际问题二,实验准备使用指针间接访问数组(一维,两维)指针作为函数......
  • ssh连接linux服务器中断后,如何让命令继续在服务器运行
    ssh连接linux服务器中断后,如何让命令继续在服务器运行这个问题也许是我们这些小白比较头疼的问题,尤其对于做机器学习需要花很久的时间才能训练出一个结果。然而就在这时,因为各种不可抗力我们使用ssh连接服务器时,ssh的窗口突然断开了连接,那么在服务器上跑的程序就也跟着断掉了,之前......
  • 经典C语言代码——part 19(链表)
    【程序72】题目:创建一个链表。1.程序分析:2.程序源代码:/*creatalist*/#include"stdlib.h"#include"stdio.h"structlist{intdata;structlist*next;};typedefstructlistnode;typedefnode*link;voidmain(){linkptr,head;int......
  • C语言专题之文件操作相关函数
    在C语言中,文件操作是一系列重要且功能强大的功能,主要通过标准库<stdio.h>中的函数实现。以下是一些核心的文件操作函数及其详细说明:一、文件的打开与创建:fopen() 1.原型:FILE*fopen(constchar*filename,constchar*mode); 2.描述:fopen函数用于打开一个已经存在......
  • 将Linux内核参数ip_forward设置为0后,以下那些功能可能受影响:Nginx、LVS、Keepalived、
    将Linux内核参数ip_forward设置为0后,以下那些功能可能受影响:Nginx、LVS、Keepalived、iptables、firewalld、HAProxy将Linux内核参数ip_forward设置为0后,影响的是系统的IP数据包转发功能。它决定了Linux是否能够作为路由器转发非本机目标的数据包。当其值为0时,系......