如果有帮助给小编点点关注,点点赞吧。会定期分享一些相关知识。谢谢啦。
若有问题可以私信小编,小编好及时改正。
1.输入3个整数,按从小到大的顺序输出。
方法一:常规方式
#include <stdio.h>
int main()
{
int a,b,c,temp;
printf("请输入三个整数:");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
temp=a;
a=b;
b=temp;
}
if(a>c)
{
temp=a;
a=c;
c=temp;
}
if(b>c)
{
temp=b;
b=c;
c=temp;
}
printf("%d %d %d",a,b,c);
}
方法二:条件运算符
int main()
{
int a,b,c,max,min;
printf("请输入三个整数:");
scanf("%d%d%d",&a,&b,&c);
max=(a>b?a:b)>c?(a>b?a:b):c;
min=(a<b?a:b)<c?(a<b?a:b):c;
printf("%d %d %d",min,(a+b+c)-max-min,max);
}
方法三:指针函数调用
int arr[3];
int *fun(int *a,int *b,int *c){
int t;
if(*a>*b){
t=*a;
*a=*b;
*b=t;
}
if(*a>*c){
t=*a;
*a=*c;
*c=t;
}
if(*b>*c){
t=*b;
*b=*c;
*c=t;
}
arr[0]=*a;
arr[1]=*b;
arr[2]=*c;
return arr;
}
int main(){
int a,b,c;
printf("请输入三个整数:\n");
scanf("%d%d%d",&a,&b,&c);
fun(&a,&b,&c);
printf("%d %d %d",arr[0],arr[1],arr[2]);
}
void fun(int *a,int *b,int *c){
int t;
if(*a>*b){ // 3 2 1
t=*a; // t=3
*a=*b; // a=2
*b=t; // b=3
}
if(*a>*c){
t=*a; // t=2
*a=*c; // a=1
*c=t; // c=2
}
if(*b>*c){
t=*b; // t=3
*b=*c; // b=2
*c=t; // c=3
}
printf("%d %d %d",*a,*b,*c);
}
int main(){
int a,b,c;
printf("请输入三个整数:\n");
scanf("%d%d%d",&a,&b,&c);
fun(&a,&b,&c);
}
2.请将以下语句改写成switch语句。(假设s为整数)
//初始
if ((s>0)&&(s<=10))
if ((s>=3)&&(s<=6)) x=2;
else if((s>1)||(s>8)) x=3;
else x=1;
else x=0;
int main()
{
int s,x;
scanf("%d",&s);
switch(s){
case 1:x=1; break;
case 3:
case 4:
case 5:
case 6: x=2; break;
case 2:
case 7:
case 8:
case 9:
case 10:x=3; break;
default:x=0;
}
printf("x=%d",x);
}
3.输入一年如2006,判断这一年是不是闰年。
int main()
{
int a;
scanf("%d",&a);
if((a%4==0)&&(a%100!=0))
printf("%d是闰年",a);
else if(a%400==0)
printf("%d是闰年",a);
else
printf("%d不是闰年",a);
}
4.假设用四位数字表示一个时间,比如1106表示11点零6分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的等,例如5点30分表示为530;0点30分表示为030。注意,第二个数字表示的分钟数可能超过60,但要求是正数。
int main()
{
int a,b,c,d,e,f,g;//a当前时间,b分钟数,c小时数 ,d当前分钟数 ,e计算后小时数,f计算后分钟数
scanf("%d%d",&a,&b);
c=a/100;
d=a%100;
e=(b+d)/60;
f=(b+d)%60;
g=(c+e)%24*100;
if(g==0)
printf("0");
printf("%d",g+f);
}