[第一部分]非常基础的题每题10分,在线等急!!

surferc 2003-07-24 03:18:14
如题由于sars成人大专没上课,可明天还要交作业.实在是急,请各位高手帮忙每题10分谢谢!最好贴出完整代码。

下面是第一部分的题过一会再发后面的。

1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入
2写一个函数,输入一行字符,将此字符串中最长的单词输出。
3写一函数,输入一个十六进制数,输出相应的十进制数。

...全文
33 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
surferc 2003-07-24
  • 打赏
  • 举报
回复
不好意思第一次发贴不太清楚规则有人没给分有人给分不全请到我开的第二部分 那贴子回复我会给分谢谢各位的帮助
eminemTM 2003-07-24
  • 打赏
  • 举报
回复
/* No.2 */
/* 函数: 输入串
参数: 串
返回:最长单词的串
*/
const char *longgestStr(char *str)
{
char *cp=str,*rv=0;
static buf[512];
size_t i,clen=0,max=0;
for(i=0;i<strlen(str);i++){
if( isalpha(str[i]) ){
clen++;
}
else
{
if( max < clen ){
rv=cp;
max=clen;
}
clen=0;
cp=&str[i+1];
}
}
if( rv == 0)
return 0;
memcpy(buf,rv,max);
buf[max]=0;
return buf;
}

/* example */
#include ....
int main()
{
char buf[BUFSIZ];
gets(buf);
printf("%s\n",longgestStr(buf));
getch();
return 0;
}
listart 2003-07-24
  • 打赏
  • 举报
回复
2.
char ch;
int mlen=0;
while ((ch=getch())!+'\n'){
if (isAlpha(ch)) mlen++;
else mlen=0;
}
eminemTM 2003-07-24
  • 打赏
  • 举报
回复
最小公倍数=(a*b)/ab的最大公约数.
是 * 呐
snowman_pc 2003-07-24
  • 打赏
  • 举报
回复
错啦,好像是,

最小公倍数=(a+b)*最大公约数
snowman_pc 2003-07-24
  • 打赏
  • 举报
回复
还得加一些是,求最小公倍数=(a+b)/最大公约数

/* 最大公约数 */
int gcd(int a,int b)
{
int tmp;
if( a*b == 0 ){
perror(" either a or b is zero.");
return 0;
}
if( a < b ){
tmp=a;
a=b;
b=tmp;
}
while( a % b ){
tmp=a;
a=b;
b=tmp%b;
}


return b;
}
eminemTM 2003-07-24
  • 打赏
  • 举报
回复
/* 函数:16进制字串转整型
参数:16进制char指针
返回: int
*/
int hexStr2iDec(const char *hex)
{
int i,j,inz,bitz;
int rv=0;
for( i = 0; i<strlen(hex);i++){
inz=1;
for( j=1 ; j < strlen(hex) - i ; j++)
inz*=0x10;
if( hex[i] >='0' && hex[i] <='9' ){
bitz=hex[i]-'0';
}
else if( hex[i] >='a' && hex[i] <='z' ){
bitz=hex[i]-'a'+10;
}
else if( hex[i] >='A' && hex[i] <='Z' ){
bitz=hex[i]-'A'+10;
}
else {
printf("input error\n");
}
rv+=bitz*inz;
}
return rv;
}
snowman_pc 2003-07-24
  • 打赏
  • 举报
回复
3.

main()
{
int nNumber;
scanf("%x",&nNumber); /*读入十六进制数*/
printf("%d",&nNumber); /*输出十进制数*/
}

stratagem 2003-07-24
  • 打赏
  • 举报
回复
3
scanf("%x",&i);
printf("%d",i);
eminemTM 2003-07-24
  • 打赏
  • 举报
回复
/* 最大公约数 */
int gcd(int a,int b)
{
int tmp;
if( a*b == 0 ){
perror(" either a or b is zero.");
return 0;
}
if( a < b ){
tmp=a;
a=b;
b=tmp;
}
while( a % b ){
tmp=a;
a=b;
b=tmp%b;
}
return b;
}
ddbear 2003-07-24
  • 打赏
  • 举报
回复
int zuidagongyue(int a,int b)
{

}

69,379

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧