linuxC语言day2

作业1:展开的思路,按要求分析以下代码。

要求不要放到编译器中运行,自己手动分析出每条输出语句的结果,分析出结果后,再在编译器中执行验证结果

void main()

int num,num2,num3;

num=1;

num2=2;

num3=3;

num=++num2+ ++num3;

printf("\In%d,%d,%d",num,num2,num3);//输出结果1                                    7,3,4

num=num2++ + num3++;

printf("\In%d,%d,%d",num,num2,num3);//输出结果2                                   7,4,5

num=++num2> num3++;

printf("\n%d,%d,%d",num,num2,num3);//输出结果3                                   0,5,6

num=num2 -- && -- num3;

printf("\n%d,%d,%d",num,num2,num3);//输出结果4                                  1,4,5

num = num2>num3 ? num2++ : num3++;

printf("\n%d,%d,%d",num,num2,num3);//输出结果5                                   5,4,6

}

作业二:使用switch实现简易计算器:例如,输入一个表达式:3+5,程序输出结果为8

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	char a;
	int b,c;
	printf("请输入表达式:");
	scanf("%d%c%d",&b,&a,&c);
	switch(a){
		case '+':
			printf("%d\n",b+c);
			break;
		case '-':
			printf("%d\n",b-c);
			break;
		case '*':
			printf("%d\n",b*c);
			break;
		case '/':
			printf("%f\n",(float)b/(float)c);
			break;
	}
	return 0;
}

作业三:使用switch实现,要求输入一个日期,输出该日期是对应今年的第几天

例如输入:2023 1 20 输出结果:该日期是今年第20天

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int year,m,day;
	int m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12;
	int flat=1,a=0,sum=0;
	m1=m3=m5=m7=m8=m10=m12=31,m2=28,m4=m6=m9=m11=30;
	printf("请输入日期:");
	scanf("%d.%d.%d",&year,&m,&day);
	if(m>12||m<0){
		flat=0;
		printf("输入日期有误\n");
	}
	if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
		if(day>31||day<0){
			flat=0;
			printf("输入日期有误\n");
		}
	}
	if(m==4||m==6||m==9||m==11){
		if(day>30||day<0){
			flat=0;
			printf("输入日期有误\n");
		}
	}
	if(year%4==0&&year%100!=0||year%400==0){
		m2+=1;
		a=1;
	}
	if(m==2){
		if(day>28+a||day<0){
			flat=0;
			printf("输入日期有误\n");
		}
	}
	if(flat==1){
		switch(m){
				case 12:
						sum+=m11;
				case 11:
						sum+=m10;
				case 10:
						sum+=m9;
				case 9:
						sum+=m8;
				case 8:
						sum+=m7;
				case 7:
						sum+=m6;
				case 6:
						sum+=m5;
				case 5:
						sum+=m4;
				case 4:
						sum+=m3;
				case 3:
						sum+=m2;
				case 2:
						sum+=m1;
				case 1:
						sum+=day;
		}
	}
	printf("此日是该年的第%d天\n",sum);
	return 0;
}

作业四:编写一个C程序,输入三个整数,判断并输出这三个数中的最大值。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int a,b,c,max;
	printf("请输入三个整数:");
	scanf("%d%d%d",&a,&b,&c);
	if(a>=b){
		max=a;
	}else{
		max=b;
	}
	if(max<c){
		max=c;
	}
	printf("max=%d\n",max);
	return 0;
}

作业五:商场折扣计算器

某商场有一个折扣促销活动,根据顾客购买的商品总额,判断顾客可以享受的折扣。折扣规则如下:

1.如果顾客购买的商品总额

大于1000元,则:

。如果总额 大于2000元,则享受15%的折扣。
。否则,享受10%的折扣。

2. 如果顾客购买的商品总额

在500元到1000元之间,则享受5%的折扣。

3. 如果顾客购买的商品总额

小于500元,则不享受任何折扣。

此外,如果顾客的购买总额小于0或大于10000元,则提示“无效金额”。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	float money,a=0;
	printf("请输入消费的金额:");
	scanf("%f",&money);
	if(money<0||money>10000){
		printf("无效金额\n");
	}else if(money>2000&&money<=10000){
		a=money*0.15;
	}else if(money>1000){
		a=money*0.1;
	}else if(money>500){
		a=money*0.05;
	}
	money-=a;
	printf("顾客共消费%.2f元\n",money);
	return 0;
}

作业六:提示输入一个整数,判断该数是几位数

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int num,i=10,count=1;
	printf("请输入一个整数:");
	scanf("%d",&num);
	while(num/i!=0){
		i*=10;
		count++;
	}
	printf("该数有%d位\n",count);
	return 0;
}
ubuntu@ubuntu:

作业七:编写一个程序,要求用户输入一个整数n,然后使用while循环计算n!(即n的阶乘)。阶乘是一个正整数的所有小于等于它的正整数的积,并且输入的该数只能在1到20之间。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int n;
	printf("请输入一个位于1到20之间的整数:");
	scanf("%d",&n);
	int m=n;
	while(m-1){
		m--;
		n*=m;
	}
	printf("该数的阶乘是%d\n",n);
	return 0;
}

作业八:猜数字游戏

描述:设计一个猜数字游戏,程序随机生成一个1到100之间的数字,用户需要在指定的次数内猜对这个数字。如果用户猜对,
输出恭喜消息并结束游戏。如果用户猜错,提示数字是“大”还是“小”,并允许继续猜。用户最多只能猜10次。

要求:

· 使用while循环实现游戏的循环结构。
· 生成随机数,并限制用户的猜测次数。
· 提示用户数字大小,并且计算猜测次数。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() 
{
    int x= 1, d = 100; 
    int number, guess, count = 0;
    srand(time(0));
    number = (rand() % (d - x + 1)) + x; 
    printf("我已经选择了一个 %d 到 %d 之间的数字。\n", x, d);
     while (guess != number&&count<10){
        printf("请输入你的猜测:");
        scanf("%d", &guess);
        count++; 
        if (guess > number) {
            printf("大\n");
        } else if (guess < number) {
            printf("小\n");
        } else {
            printf("恭喜你!你猜对了!数字是 %d。\n", number);
            printf("你猜了 %d 次。\n", count);
        }
	 }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值