1、第 35 题 : 明明的随机数 (时间限制为:500毫秒) 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。 输入格式 Input Format 输入文件有2行,第1行为1个正整数,表示所生成的随机数的个数:N 第2行有N个用空格隔开的正整数,为所产生的随机数。 输出格式 Output Format 输出文件也
2、是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
样例输入 Sample Input
6
9 8 8 12 10 10
样例输出 Sample Output
4
8 9 10 12
#include
3、访问
for(i=0;i
4、>n;
for(i=0;i 5、题)}
此函数是按行读取,其语法为:cin.getline(字符指针,字符个数N,结束符);
功能是:一次读取多个字符(包括空白字符),直到读满N-1个,或者遇到指定的结束符为止(默认的是\0)。
例:
#include 6、 2 3 4 5 6 7 8 9 _ (第10位为空白字符'\0')
C语言中memset函数详解
功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,
块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作
用 法: void *memset(void *s, char ch, unsigned n);
程序例:
#include 7、
{
char buffer[] = "Hello world\n";
printf("Buffer before memset: %s\n", buffer);
memset(buffer, '*', strlen(buffer) );
printf("Buffer after memset: %s\n", buffer);
return 0;
}
输出结果:
Buffer before memset: Hello world
Buffer after memset: ***********
8、
memset函数详细说明
1。void *memset(void *s,int c,size_t n)
总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。
2。例子
main(){
char *s="Golden Global View";
clrscr();
memset(s,'G',6);//貌似这里有点问题//
printf("%s",s);
getchar();
return 0;
}
【这个问题相当大,程序根本就运行不下去了,你这里的S志向的是一段只读 9、的内存,而你memset又试图修改它,所以运行时要出错,修改办法char *s修改为char s[]】
3。memset() 函数常用于内存空间初始化。如:
char str[100];
memset(str,0,100);
4。memset()的深刻内涵:用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘memset(a, '\0', sizeof(a));
memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;例:char a[100],b[50]; memcpy(b, a, size 10、of(b));注意如用sizeof(a),会造成b的内存地址溢出。
strcpy就只能拷贝字符串了,它遇到'\0'就结束拷贝;例:char a[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串长度(第一个‘\0’之前)是否超过50位,如超过,则会造成b的内存地址溢出。
5.补充:某人的一点心得
memset可以方便的清空一个结构类型的变量或数组。
如:
struct sample_struct
{
char csName[16];
int iSeq;
int i 11、Type;
};
对于变量
struct sample_strcut stTest;
一般情况下,清空stTest的方法:
stTest.csName[0]='\0';
stTest.iSeq=0;
stTest.iType=0;
用memset就非常方便:
memset(&stTest,0,sizeof(struct sample_struct));
如果是数组:
struct sample_struct TEST[10];
则
memset(TEST,0,siz 12、eof(struct sample_struct)*10);
6。strcpy
原型:extern char *strcpy(char *dest,char *src);
用法:#i nclude
功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
memcpy
原型:extern void *memcpy(void *dest, void *src, unsigned int 13、count);
用法:#i nclude
功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。
memset
原型:extern void *memset(void *buffer, int c, int count);
用法:#i nclude
功能:把buffer所指内存区域的前count个字节设置成字符c。
说明:返回指向buffer的指针。
负权数
#include 14、h>
#include 15、1%r1;
n1/=r1;
i++;
}
//以下将|n|的|r|进制形式转化为n的r进制形式。
if(n>0)
p=1;
else p=0; //n<0
i--;
while(p<=i)
{
if(a[p]>0)
{
a[p+1]++; //向a[p+ 16、1]位进1
j=p+1;
while(a[j]>=r1) //修改
{
a[j]-=r1;
j++;
a[j]++;
}
if(j>i) //如果长度变长了
{
17、 i=j;
}
a[p]=r1-a[p];
}
p+=2;
}
for(j=i;j>=0;j--)
{
if(a[j]<10)
printf("%d",a[j]);
else printf("%c",a[j]-10+'A');
18、 }
printf("\n");
}
return 0;
}
最大公约数
最大公约数(greatest common divisor,简写为gcd;或highest common factor,简写为hcf),指某几个整数共有因子中最大的一个。
例如,12和30的公约数有:1、2、3、6,其中6就是12和30的最大公约数。
两个整数的最大公约数主要有两种寻找方法:
* 两数各分解质因子,然后取出同样有的项乘起来
* 辗转相除法(扩展版)
和最小公倍数(lcm)的关系:gcd(a, b)×lcm(a 19、 b) = ab
两个整数的最大公因子可用于计算两数的最小公倍数,或分数化简成最简分数。
两个整数的最大公因子和最小公倍数中存在分配律:
* gcd(a, lcm(b, c)) = lcm(gcd(a, b), gcd(a, c))
* lcm(a, gcd(b, c)) = gcd(lcm(a, b), lcm(a, c))
在座标里,将点(0, 0)和(a, b)连起来,通过整数座标的点的数目(除了(0, 0)一点之外)就是gcd(a, b)。
//GDC 分解因素法
#include 20、td;
int main()
{
int s,x,y,i;
i=2;s=1;
cin>>x,y;
while(i 21、 namespace std;
int main()
{
int m,n,r;
cin>>m,n;
if(m 22、y,a,b;
cin>>x>>y;
a=x;
b=y;
while(a!=b)
if(a>b)
a-=b;
else
b-=a;
cout<<"Gcd is"<
using namespace std;
int gcd(int x,int y)
{int Gcd;
if(x%y==0)
Gcd=y;
else
Gcd=gcd(y,x%y);
return Gcd;
}
int 23、main()
{
int a,b;
cin>>a>>b;
cout<<"Gcd is the hope of our people"< 24、te:
int m,n;
};
int Max_gcd::gcd1(int m,int n)
{
int d=1;
for(int k=2;k<=m&&k<=n;k++)
if(m%k==0&&n%k==0)
d=k;
return d;
}
int Max_gcd::gcd2(int m,int n)
{
int k;
for(k=(m>n ? n:m);m%k!=0||n%k!=0;k--)
;
return k;
}
int Max_gcd::gcd3(int m,int n)
25、 {
int r;
do{
r=m%n;
m=n;
n=r;
}while(r);
return m;
}
int Max_gcd::gcd4(int m,int n)
{
int r;
if(n==0) return m;
for(r=m%n;r!=0;r=m%n)
{
m=n;
n=r;
}
return n;
}
int main()
{
int x,y;
int j=1;
char choice;
Max_gcd gcd;
whi 26、le(j)
{
cout<<"-----------------------------------------------"< 27、"< 28、ice=='c')
{
cout<<"please input m,n:"< 29、ruct Piont
{
double s;
int a;
int b;
}p[10000];
int gcd(int a,int b)
{
if(b==0)return a;
else return gcd(b,a%b);
}
int main()
{
int n,i,j,l=0,t;
double q;
cin>>n;
for(i=1;i<=n;i++)
for(j=1;j 30、
p[l].b=i;
l++;
}
for(i=1;i






