count++;
}
else
in++;if( maxlen < count )
{
maxlen = count;
count = 0;
final = temp;
}
}
for(int i = 0; i < maxlen; i++)
{
*out = *final;
out++;
final++;
}
*out = '/0';
return maxlen;
}不用库函数,用C语言实现将一整型数字转化为字符串
方法1:
int getlen(char *s){
int n;
for(n = 0; *s != '/0'; s++)
n++;
return n;
}
void reverse(char s[])
{
int c,i,j;
for(i = 0,j = getlen(s) - 1; i < j; i++,j--){
c = s[i];
s[i] = s[j];
s[j] = c;
}
}
void itoa(int n,char s[])
{
int i,sign;
if((sign = n) < 0)
n = -n;
i = 0;
do{/*以反序生成数字*/
s[i++] = n%10 + '0';/*get next number*/
}while((n /= 10) > 0);/*delete the number*/if(sign < 0)
s[i++] = '-';s[i] = '/0';
reverse(s);
}
方法2:
#include <iostream>
using namespace std;void itochar(int num);void itochar(int num)
{
int i = 0;
int j ;
char stra[10];
char strb[10];
while ( num )
{
stra[i++]=num%10+48;
num=num/10;
}
stra[i] = '/0';
for( j=0; j < i; j++)
{
strb[j] = stra[i-j-1];
}
strb[j] = '/0';
cout<<strb<<endl;}
int main()
{
int num;
cin>>num;
itochar(num);
return 0;
}前几天面试,有一题想不明白,请教大家!
typedef struct
{
int a:2;
int b:2;
int c:1;
}test;test t;
t.a = 1;
t.b = 3;
t.c = 1;printf("%d",t.a);
printf("%d",t.b);
printf("%d",t.c);谢谢!
t.a为01,输出就是1
t.b为11,输出就是-1
t.c为1,输出也是-1
3个都是有符号数int嘛。
这是位扩展问题
01
11
1
编译器进行符号扩展
求组合数: 求n个数(1....n)中k个数的组合....
如:combination(5,3)
要求输出:543,542,541,532,531,521,432,431,421,321,
#include<stdio.h>int pop(int *);
int push(int );
void combination(int ,int );int stack[3]={0};
top=-1;int main()
{
int n,m;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-36439-27.html
父母的美德是一笔巨大的财富