求助!用C语言回答以下几个问题。
1.输出以下图案:(XXXX为本人学号后四位,YYY为姓氏拼音)
* * * * * * *
* * XXXX * YYY * *
* * * * * * * * * * *
2.输入一个不多于5位的正整数m,及位数k,输出m第k位(从低位到高位)上的数值。若m没有第k位,则输出0。
例:输入1357和2, 输出5;输入1357和5,输出0;
3 输入一行字符,将其中的字母循环左移四位,数字加二再模十,空格删除,其它符号不变。先将结果保存在数组中,再输出到屏幕上。
例:输入:9527:In God We Trust
输出:1749:EjCkzWaPnqop
输入:XXXX: ”Glmre!“ (XXXX表示学号后四位)
输出:ZZZZ:“China!”
[解决办法]
第二题:
#include "stdio.h "
void main()
{
int x,y,z,i,l=1;
printf( "输入数字\n ");
scanf( "%d ",&x);
printf( "输入位数\n ");
scanf( "%d ",&y);
for(i=1;i <=y;i++)
l*=10;
z=(x%l)/(l/10);
printf( "%d ",z);
}
记得给分~
[解决办法]
int main()
{
char c=0,nchar[128]= " ",temp[128]= " ";
int i=0;
while((c=getchar())!= '\n ')
{
if(c== ' ') continue;
temp[i]=c;
if(c> 64&&c <91||c> 96&&c <123)//字母
{
if(c> =69&&c <=90)c-=4;//E~Z
else if(c> =101&&c <=122) c-=4;//e~z
else c+=22; //a~d A~D
}
if(c> 47&&c <58) //数字
c=(c-46)%10+48;
nchar[i++]=c;
}
printf( "%s\n ",temp);//初始值
printf( "%s ",nchar);//转换后的
return 0;
}