永发信息网

c语言编程问题!

答案:4  悬赏:50  手机版
解决时间 2021-03-25 20:29
c语言编程问题!
最佳答案
1.编程在一个已知字符串中查找最长单词,假定字符串中只含有字母和空格,空格用来分割不同单词!

方法一:

//VC++ 6.0 编译通过

#include
void main()
{
char str[]="hello world my name is xun yi cao !!";
char*p=str,*p1;
int max=0,count=0,i;
while(*p)
{
count=0;
while(*p==' ')p++;
while(*p!=' '&&*p)
{//一定要注意这里的判断 *p!=0 也要判断,不然到了最后一个单词时,它一直向后面加,直到碰见空格,所以会超界。
p++;
count++;
}
if(max{
max=count;
p1=p-count;
}
}
printf("the largest number is :%d \n",max);
printf("the largest word is : ");
while(*p1!=' '&&*p1) //这里也要判断*p1!='\0',因为如果最长的单词在字符串的末尾的话,如果不判断*p1!='\0',也会过界。
{
putchar(*p1);
p1++;
}
putchar('\n');
}



方法二:

//VC++ 6.0 编译通过。

#include
#include
void main()
{
char str[]=" I am a student";
char*p=str,Array[10][20]={0};
int i=0,j=0,max=0;
while(*p)
{
while(*p==' ')*p++;
while(*p&&*p!=' ')
{
Array[i][j++]=*p;
p++;
}
i++;j=0;
}
i=0;
max=strlen(Array[i]);
p=Array[i];
while(strlen(Array[i]))
{
if(max{
max=strlen(Array[i]);
p=Array[i];
}
i++;
}
printf("%d\n%s\n",max,p);
}



2.编写实现任意十进制数,转换成r进制数(r在2到16之间)

转换为二进制:

//VC++ 6.0编译通过

#include
#include
void main()
{
int a,b[30],i;
scanf("%d",&a);
for(i=0;a!=0;i++)
{
b[i]=a%2;
a=a/2;
}
for(--i;i>=0;i--)
{
printf("%d",b[i]);
}
putchar('\n');
}

//关于二进制的转换,还可以用位移运算符。通过和某一个数如1相按位与,就得到它的二进
制最低位,在位移,再得到二进制最低位,依此类推。

转换为8进制:

/VC++ 6.0编译通过。

#include
#include
void main()
{
int a,b[20],i;
scanf("%d",&a);
for(i=0;a!=0;i++)
{
b[i]=a%8;
a=a/8;
}
for(--i;i>=0;i--)
{
printf("%d",b[i]);
}
putchar('\n');
}



转换为16进制:

//VC++ 6.0 下编译通过

#include
#include
void main()
{
int a,b[20],i,base=16;
char X[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
scanf("%d",&a);
for(i=0;a!=0;i++)
{
b[i]=a%base;
a=a/base;
}
for(--i;i>=0;i--) //开始有一个 --i
{
int j=b[i];
printf("%c",X[j]);
}
printf("\n");
}



通用解决方案:

#include
#include
void main()
{
int a[10]={0,1,2,9,10,5,12,7,8,15};
for(int i=9;i>=0;i--)
{
if(a[i]>=10)
switch(a[i])
{
case 10: printf("%c",'A');break;
case 11: printf("%c",'B');break;
case 12: printf("%c",'C');break;
case 13: printf("%c",'D');break;
case 14: printf("%c",'E');break;
case 15: printf("%c",'F');break;
}
else
printf("%d",a[i]);
}
}



这些都是我在考计算机等级考试碰到过的题目哦,算法都是相当典型的,有的是书上看到的,有的是自己扩展的。还是要自己认真哦。。。

由于文字太多第三题提交不上来了哦。。不好意思。。。
全部回答
哈 只能说你。够懒。我也懒
1.
void LARW(char str[])
{
int i=0,k,sign=0,len=0,word=0;
while(str[i])
{
if(('A'<=str[i]&&str[i]<='Z')||('a'<=str[i]&&str[i]<='z'))
{
if(!word)
{
word++;
k=i;
}
else word++;
}
else
{
if(word>len)
{
len=word;
word=0;
sign=k;
}
else k=0;
}
}
if(word>len)
{
len=word;
sign=k;
}
printf("the largest word is:\n");
for(i=0;i{
printf("%c",str[sign+i]);
}
}
void main()
{
char a[200]={"I am a boy,i like to play football"};
LARW(a);
}
2:
void main()
{
int nNum,Rad,i=0,Residue;
int Store[50];
printf("请输入一个任意整数:");
scanf("%d",&nNum);
printf("\n请输入一个合法的表示进制的基数[2,16]:");
scanf("%d",&Rad);
if(Rad<=1)
exit(-1);
printf("\n转换后的结果是:");
while(nNum>=Rad)
{
Residue=nNum%Rad;//0
nNum/=Rad;//1
Store[i]=Residue;//0
++i;
}
Store[i]=nNum;
for(;i>=0;--i)
switch(Store[i])
{
case 0:
printf("0");
break;
case 1:
printf("1");
break;
case 2:
printf("2");
break;
case 3:
printf("3");
break;
case 4:
printf("4");
break;
case 5:
printf("5");
break;
case 6:
printf("6");
break;
case 7:
printf("7");
break;
case 8:
printf("8");
break;
case 9:
printf("9");
break;
case 10:
printf("A");
break;
case 11:
printf("B");
break;
case 12:
printf("C");
break;
case 13:
printf("D");
break;
case 14:
printf("E");
break;
case 15:
printf("F");
break;
}
printf("\n");
}
2.任意r进制数么?
char temp[16];
long num;
_ltoa(num,temp,r);
3.
double total = 345.78;
total*100
m100 = total / 10000;
total %= 10000;
m50 = total / 5000;
total %= 5000;
m10 = total / 1000;
total %= 1000;
m5 = total / 500;
total %= 500;
m2 = total / 200;
total %= 200;
m1 = total / 100;
total %= 100;
m01 = total / 10;
total %= 10;
m05 = total / 5;
total %= 5;
m01 = total;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
大年初二从渔洋关到武汉怎么走?
有谁了解贴之道的吗,可信吗?
单选题Afirstaidkitisaboxorbagofusefu
求级数sin的敛散性,为什么是条件收敛
前台怎么显示activiti流程图
三月三可是麻神
巴克巴这个牌子的童装怎么样?适合多大小孩穿
原桃木怎么辨别
光亮的内裤什么色
缺少阳刚怎么办
新颖干洗店(永胜县期纳镇中心卫生院南)地址好
服务社区给孤寡老人补助的时候有什么困难
1961年是战争时期吗
飞流直下三千尺是写瀑布的什么而且流的什么
江水又东径狼尾滩而历人滩...的原文及翻译
推荐资讯
停车场(云盛路)(云盛路48号停车场)地址在哪,
“故学至于礼而止矣,夫是之谓道德之极”中的
欧洲的海陆位置
单选题下列变化过程中,属于化学变化的是A.百
腾达 i9 路由器设置方法
吃鸡cpu用至强还是酷睿好
2014亚洲音乐盛典exo跳舞最后一个人超帅一个
lol最 冷门的英雄是?
run CHKDSK /F to check for hard drive
“宜家为海”是什么意思?
这两双哪双好看
以前伤了女朋友的心
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?