首页 > 系统相关 >[linux]记录一次C语言综合练习

[linux]记录一次C语言综合练习

时间:2023-06-06 14:46:42浏览次数:35  
标签:case fun1 fun3 fun2 sum 练习 C语言 break linux

题目

根据特定功能设计程序,要求由main.c,Fun1.c-Fun3.c选择其中任意两个, 共三个C语言文件和1个头文件组成,
其中fun1.c, fun2.c和fun3.c都使用了define.h中的声明,C语言文件的功能分别是:
fun1.c: 输出9*9口诀
fun2.c:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
fun3.c:输入某年某月某日,判断这一天是这一年的第几天?

要求:输入fun1,执行1;输入fun2,执行2;输入fun3,执行3。
都执行完,英文显示”恭喜你,已完成测试”,否则,英文输出”测试未完成,请继续努力”。
请为该程序编写相应的makefile文件,用make 命令生成最后的可执行文件main,并运行,确保功能正确。

程序

fun1.c

#include "define.h"
void fun1()
{
    int i, j;
    for (i = 1; i <= 9; ++i) {
        for (j = 1; j <= i; ++j) {
            printf("%d*%d=%d ", j, i, i*j);
        }
        printf("\n");
    }
}

int main()
{
    int flag = 0;
    printf("input flag\n");
    scanf("%d",&flag);
    if (flag==1)
    {
        fun1();
        printf("finished!\n");
    }
    else if (flag==2)
    {
        fun2();
        printf("finished!\n");
    }
    else if (flag==3)
    {
        fun3();
        printf("finished!\n");
    }
    else
    {
        printf("unfinished!\n");
    }

    return 0;
}

fun2.c

#include "define.h"
void fun2()
{
    int a, b, c, count = 0;
    for (a = 1; a <= 4; a++) {
        for (b = 1; b <= 4; b++) {
            for (c = 1; c <= 4; c++) {
                if (a != b && b != c && a != c) { // 保证三个数字互不相同
                    count++;
                    printf("%d%d%d\t", a, b, c);
                }
            }
        }
    }
    printf("共%d个三位数\n", count);
}

fun3.c

#include "define.h"
void fun3()
{
    int year, month, day,sum,leap;
	printf("需要判断的时间(年,月,日):");
	scanf("%d,%d,%d", &year, &month, &day);
	printf("\n");
	switch (month){
		case 1:sum = 0; break;
		case 2:sum = 31; break;
		case 3:sum = 59; break;
		case 4:sum = 90; break;
		case 5:sum = 120; break;
		case 6:sum = 151; break;
		case 7:sum = 181; break;
		case 8:sum = 212; break;
		case 9:sum = 243; break;
		case 10:sum = 273; break;
		case 11:sum = 304; break;
		case 12:sum = 334; break;
		default:printf("输入日期格式错误\n");
	}
	sum = sum + day;
	if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
		leap = 1;
	}
	else{
		leap = 0;
	}
	if (leap == 1 && month > 2) {
		sum = sum + 1;
	}
	printf("这是%d年的第%d天\n", year, sum);
}

define.h

#include <stdio.h>
extern void fun1();
extern void fun2();
extern void fun3();
extern int main(); 

makefile

CC = gcc
CFLAGS = -Wall -Wextra -std=c11

SRCS = fun1.c fun2.c fun3.c
OBJS = $(SRCS:.c=.o)
DEPS = define.h
TARGET = main

all: $(TARGET)

$(TARGET): $(OBJS)
	$(CC) $(CFLAGS) $^ -o $@

%.o: %.c $(DEPS)
	$(CC) $(CFLAGS) -c $< -o $@

clean:
	rm -f $(OBJS) $(TARGET)

运行结果

make

1

2

3

其他

标签:case,fun1,fun3,fun2,sum,练习,C语言,break,linux
From: https://www.cnblogs.com/rainbow7colours/p/17460436.html

相关文章

  • linux 查看防火墙相关命令
    1.查看防火墙状态systemctlstatusfirewalld2.启动防火墙systemctlstart/restartfirewalld3.停止防火墙 临时停用,重启后失效systemctlstopfirewalld4.永久停止防火墙systemctldisablefirewalld5.开机启动systemctlenablefirewalld6.查看防火请端口......
  • linux下使用mount挂着网络磁盘
    在linux下挂载windows系统的网络共享磁盘:mount-tsmbfs-ousername=longyufei,password=123456//192.168.0.80/E$/mnt/samba 删除挂载点!umount/mnt/samba/ 在linux下挂载linux的Smaba服务磁盘:mount-tsmbfs-ousername=lyf,password=123456//192.168.0.80/lyf/www/......
  • Linux 环境变量
    /etc/profile vi编辑追加行export$JAVA_HOME=/usr/local/jdk1.7 保存退出 source/etc/profile使其立即生效  ......
  • php 初学者在linux上遇到的问题
    1.访问nginx下的php文件,报404解决:安装phpyuminstallphpyuminstallphp-mysqlphp-gdlibjpeg*php-imapphp-ldapphp-odbcphp-pearphp-xmlphp-xmlrpcphp-mbstringphp-mcryptphp-bcmathphp-mhashlibmcryptlibmcrypt-develphp-fpmservicephp-fpmstart......
  • Set up SSH for Git and Mercurial on Mac OSX/Linux
    https://confluence.atlassian.com/pages/viewpage.action?pageId=270827678http://www.worldhello.net/gotgithub/index.html......
  • wc--Linux
    这个命令的功能也很好记,因为它功能很有限:wc-cfilename:显示一个文件的字节数wc-mfilename:显示一个文件的字符数wc-lfilename:显示一个文件的行数wc-Lfilename:显示一个文件中的最长行的长度wc-wfilename:显示一个文件的字数[rocrocket@rocrocketprogramming]$catwc1.txt1......
  • LINUX系列-shell脚本篇
    一批量创建用户[root@iZbp1el3hto8hhgtlih1m4Ztest]#vi1_useradd_piliang.sh#!/bin/bash#第一步获取到创建用户的名称,这里使用前台输入USER_LIST=$@#存放创建好的用户和密码USER_FILE=./new_user.log#开始进行循环forUSERin$USER_LIST;doif!id$USER......
  • linux通配符、特殊符号、正则
    一.通配符 通配符(wildcard)是一种用于文件名匹配的特殊字符。它们可用于命令行中与文件名相关的操作,如列出、复制、移动或删除文件等。 通配符可以匹配文件名中的一部分或全部内容,而不必完全指定文件名。例如,在Linux系统中,"*.txt"表示匹配所有以".txt"结尾的文件名,而不必知......
  • 第一章 初识C语言-第一节(C语言固定程序;全局变量和局部变量)
    c语言主函数固定程序#include<stdio.h>intmain(){return0;}全局变量和和局部变量全局变量定义在程序块前,局部变量定义在程序块中。intnum1=0; //num1是全局变量,其使用域可在整个程序块intmain(){{intnum2=2; //num2是局部变量,其使用于域在当前程序块}printf("%d\n",,num2);......
  • Linux中grep命令如何使用?其语法是什么?
    在Linux中,grep命令用于查找文件里符合条件的字符串或正则表达式,其语法为“grep选项模式文件”,是运维工程师常用的命令之一。接下来这篇文章为大家详细介绍一下Linuxgrep命令,快来看看吧。Linuxgrep命令用于查找文件里符合条件的字符串或正则表达式。grep指令用于......