1、输入一个正整数,如果是偶数,输出其值的一半;如果是奇数且在ASCII表对应的英文字母范

1、输入一个正整数,如果是偶数,输出其值的一半;如果是奇数且在ASCII表对应的英文字母范围内,输出其对应的ASCII字符,否则输出值的2倍。
2、输入一个四位的正整数,如果其值小于3000则将该数逆序输出(例:1234输出为4321);如果其值在3000—5999,则将其相邻位交换输出(例:3456输出为4365);如果其值在6000—7999,则将其1、3位,2、4位交换输出(例:6789输出为8967);如果其值大于8000,则将首位后移输出(例:8123输出为1238)。

1.
void main(){
int getnum;
printf("Please input a positive integer!\n");
scanf("%d",&getnum);
if(getnum < 0)
{
printf("the error num!!\n");
return;
}
if((getnum % 2) == 0)
{
printf("the num is %d\n",getnum/2);
}
else if((getnum % 2) == 1)
{
if((getnum > 0)&&(getnum <= 255))
printf(" %c\n",getnum);
else
printf(" %d\n",getnum*2);
}
}
2
int changeNumb(int id, int *num)
{
int num_bk[4] = {0};
int num_new;
num_bk[0] = *num/1000;
num_bk[1] = (*num/100)%10;
num_bk[2] = (*num/10)%10;
num_bk[3] = (*num)%10;
switch(id)
{
case 0:
num_new = num_bk[3]*1000 + num_bk[2]*100 + num_bk[1] * 10 + num_bk[0];
break;
case 1:
num_new = num_bk[1]*1000 + num_bk[0]*100 + num_bk[3] * 10 + num_bk[2];
break;
case 2:
num_new = num_bk[2]*1000 + num_bk[3]*100 + num_bk[0] * 10 + num_bk[1];
break;
default:
num_new = num_bk[3]*1000 + num_bk[0]*100 + num_bk[1] * 10 + num_bk[2];
break;
}
return num_new;
}
void main()
{
int getnum, printnum;

printf("Please input a positive integer four bit!\n");
scanf("%d",&getnum);

if((getnum < 1000) || (getnum > 9999))
{
printf("input the error num!\n");
return;
}
if(getnum < 3000)
printnum = changeNumb(0,&getnum);
else if((getnum >= 3000)&&(getnum < 6000))
printnum = changeNumb(1,&getnum);
else if((getnum >= 6000)&&(getnum < 8000))
printnum = changeNumb(2,&getnum);
else
printnum = changeNumb(3,&getnum);
printf("the new num %d\n",printnum);
}
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜