gmp现场检查指导原则:c 谁来帮忙编下

来源:百度文库 编辑:中科新闻网 时间:2024/04/27 21:18:10
1. 写一函数,将输入的一个五进制数,转化成相应的十进制数输出。
2. N(N<100)个人围成一圈,按顺序排号并报数。报数前产生一随机数M,最开始从第一个人开始,从1到M报数,凡报到M的人退出圈子。然后开始下一轮报数,设K为当前圈内剩余人数,每一轮报数前均重新产生随机数M(K<M<K+30)从退出圈子的下一个人开始报数,问最后留下的是最初的第几号。
一定按照要求来编,好的话加分
补充一点哈
第一题最好能够转换小数

第一题

main()
{int m=0;
char str[41];
int i;
gets(str);
for(i=0;str[i]!='\0';i++)
{m=m*5;
m=m+(str[i]-'0');
}
printf("%d",m);
}

-----------------------ps---------------------
转换小数的话我这个方法改起来好像挺麻烦的,基本思路是把证书部分和小数部分分开处理,整数部分不变,加一个if语句,if(str[i]=='.') 然后处理小数部分,然后用相似的语句
{k=k/5;
k=k+(str[i]-'0');}
最后把整数和小数加起来。
没时间做了,请楼主自己改改吧~~

你第一题确认是五进制的吗?
这个是第2题:
#include <stdio.h>
#define N 100
#define S 1
#define M 10
int p[100], n, s, m ;
void WriteDat(void) ;

void Josegh(void)
{
}

void main()
{ m = M ;
n = N ;
s = S ;
Josegh() ;
WriteDat() ;
system("pause");
}

void WriteDat(void)
{ int i ;
FILE *fp ;
fp = fopen("jose.out", "w") ;
for(i = N - 1 ; i >= 0 ; i--) {
printf("%4d ", p[i]) ;
fprintf(fp, "%4d", p[i]) ;
if(i % 10 == 0) {
printf("\n") ;
fprintf(fp, "\n") ; } }
fclose(fp) ;
}

不懂得知足的人,什么也别想要!