好久没有写了,自己偷懒。
以后一定要天天写博客。。。
本人自己写的代码,是个菜鸟,有错误一定要指出来,大家互相学习。
1.有n个人围成一个圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位?
#include <iostream>
using namespace std;
#define N 10
void main()
{
int str1[N] = {0};
int m = 0;
int p = N;
cout<<"人数:"<<N<<endl;
while(p>1)
{
p = N;
for(int i = 0;i<N;i++)
{
if(str1[i] ==0 )
{
m++;
if(m == 3)
{
str1[i] = 1;
m = 0;
}
}
}
for(int i = 0;i<N;i++)
{
if(str1[i] == 1)
{
p--;
}
}
}
for(int i = 0;i<N;i++)
{
if(str1[i] == 0)
{
cout<<i+1<<"留下"<<endl;
}
}
cin.get();
}
2.不用库函数,用C语言实现将一整型数字转化为字符串
#include <iostream>
using namespace std;
void itoa(int n,char s[10])
{
int q = n;
if(q < 0)
{
n = -n;
}
int m,k;
int i = 0;
int j = 0;
while((n/10)>0)
{
m = n%10;
s[i++] = m+'0';
n = n/10;
}
s[i++] = n+'0';
if(q < 0)
s[i++] = '-';
s[i] = '\0';
for(j = 0,i=i-1;j<i;j++,i--)
{
k = s[j];
s[j] = s[i];
s[i] = k;
}
}
void main()
{
int n = -1234;
char s[10] = {0};
itoa(n,s);
for(int i=0;i<10;i++ )
{
cout<<s[i];
}
cout<<endl;
cin.get();
}
3.构造链表,单连表的建立,把’a'–’z’26个字母插入到连表中,并且倒叙,还要打印
#include <iostream>
using namespace std;
typedef struct Nope
{
char data;
struct Nope *next;
}Nope;
void input(Nope *p,int n)
{
Nope *temp,*k;
temp = p;
for(int i = 0;i<n;i++)
{
k = (Nope*)malloc(sizeof(Nope));
k ->data = 'z'-i;
temp->next = k;
temp = k;
temp->next = NULL;
}
}
void output(Nope *p)
{
Nope *t;
t = p->next;
while(t)
{
cout<<t->data<<" ";
t = t->next;
}
cout<<endl;
}
void main()
{
Nope *p = (Nope*)malloc(sizeof(Nope));
p->next = NULL;
int n= 'z'-'a'+1;
input(p,n);
output(p);
cin.get();
}