hml1006 于 2011-03-23 13:46:21发表:
有toascii
blade_zhang 于 2010-11-11 14:37:08发表:
#include #include using namespace std; int main() { string str1,str2,str3,str; int i,j,k; char t; cout <<"please input three strings:"; cin >>str1 >>str2 >>str3; str=str1+str2+str3; for(i=0;i<9;i++) cout <cout <for(i=0;i<8;i++) { k=i; for(j=i+1;j<9;j++) if(str[j]>str[k]) k=j; t=str[k]; str[k]=str[i]; str[i]=t; } cout <<"the sorted string:" <for(i=0;i<9;i++) cout <cout <return 0; } 注:分三次输入数字串,并且数字个数为9,否则溢出。 如有改进,请赐教。
zzm35837995 于 2010-10-08 09:16:18发表:
8# fengfeixue 这个看着清楚
olderlong 于 2010-10-06 19:35:51发表:
引用:#include int main(void) { int i = 0, ret = 0; printf( "Input the number:\n" ); scanf( "%d", &i ); while( 0 != i ) { ret = i % 10; i = i / 10; } printf( "%d\n", ret ); ... fengfeixue 发表于 2010-9-30 18:14
metatron_x 于 2010-10-04 11:42:35发表:
各路英豪都很踊跃啊
无心出岫 于 2010-10-02 21:44:15发表:
直接3476这个数取3就用3476%1000,就可以了。
fengfeixue 于 2010-09-30 18:14:55发表:
#include int main(void) { int i = 0, ret = 0; printf( "Input the number:\n" ); scanf( "%d", &i ); while( 0 != i ) { ret = i % 10; i = i / 10; } printf( "%d\n", ret ); return 0; }
alick 于 2010-09-30 13:05:50发表:
没有itoa()是因为不需要。不是吗?
zzm35837995 于 2010-09-29 13:15:54发表:
[i=s] 本帖最后由 zzm35837995 于 2010-9-29 14:08 编辑 [/i]原来linux 下没有itoa ,下面是我写的代码 #include #include int main () { int x,y; scanf("%d",&n); char str[50]; char x[10]; sprintf(str, "%d" , n); sscanf(str,"%1s",x); printf("%s\n",x); y=atoi(x); printf("%d\n",y); return 0; } 然后还有一个问题,写一组数,把这组数组成一个新的数,这个数要是最大的,例如:输入 346,8765,23,要得到的是876534623 , 我的想法是这样的,用2个数组 分别存放 输入的数 和输入数的第一个数字, 然后比较第一个数字的大小,排序,再找到对应的数,按顺序连成新的最大数。 这样可行吗?
foxicel 于 2010-09-29 11:51:52发表:
格式化输出第一个字母,就行了。
vfdff 于 2010-09-29 01:21:36发表:
sscanf 格式化输入一个 %c 就可以了!
alick 于 2010-09-28 22:12:47发表:
不确定几位的话,也可以打印到字符串里(sprintf),然后取第一个字符。当然,转换回还得减去'0'
相思爱文 于 2010-09-28 20:47:45发表:
整除1000就行了,五位数就整除10000,……
hml1006 于 2011-03-23 13:46:21发表:
有toascii
blade_zhang 于 2010-11-11 14:37:08发表:
#include
cout <for(i=0;i<8;i++)
for(i=0;i<9;i++)
cout <return 0;
#include
using namespace std;
int main()
{
string str1,str2,str3,str;
int i,j,k;
char t;
cout <<"please input three strings:";
cin >>str1 >>str2 >>str3;
str=str1+str2+str3;
for(i=0;i<9;i++)
cout <
{
k=i;
for(j=i+1;j<9;j++)
if(str[j]>str[k]) k=j;
t=str[k];
str[k]=str[i];
str[i]=t;
}
cout <<"the sorted string:" <
cout <
}
注:分三次输入数字串,并且数字个数为9,否则溢出。
如有改进,请赐教。
zzm35837995 于 2010-10-08 09:16:18发表:
8# fengfeixue
这个看着清楚
olderlong 于 2010-10-06 19:35:51发表:
这个有用,呵呵。
metatron_x 于 2010-10-04 11:42:35发表:
各路英豪都很踊跃啊
无心出岫 于 2010-10-02 21:44:15发表:
直接3476这个数取3就用3476%1000,就可以了。
fengfeixue 于 2010-09-30 18:14:55发表:
#include
int
main(void)
{
int i = 0, ret = 0;
printf( "Input the number:\n" );
scanf( "%d", &i );
while( 0 != i )
{
ret = i % 10;
i = i / 10;
}
printf( "%d\n", ret );
return 0;
}
alick 于 2010-09-30 13:05:50发表:
没有itoa()是因为不需要。不是吗?
zzm35837995 于 2010-09-29 13:15:54发表:
[i=s] 本帖最后由 zzm35837995 于 2010-9-29 14:08 编辑 [/i]
原来linux 下没有itoa ,下面是我写的代码
#include
#include
int main ()
{
int x,y;
scanf("%d",&n);
char str[50];
char x[10];
sprintf(str, "%d" , n);
sscanf(str,"%1s",x);
printf("%s\n",x);
y=atoi(x);
printf("%d\n",y);
return 0;
}
然后还有一个问题,写一组数,把这组数组成一个新的数,这个数要是最大的,例如:输入 346,8765,23,要得到的是876534623 , 我的想法是这样的,用2个数组 分别存放 输入的数 和输入数的第一个数字, 然后比较第一个数字的大小,排序,再找到对应的数,按顺序连成新的最大数。 这样可行吗?
foxicel 于 2010-09-29 11:51:52发表:
格式化输出第一个字母,就行了。
vfdff 于 2010-09-29 01:21:36发表:
sscanf 格式化输入一个 %c 就可以了!
alick 于 2010-09-28 22:12:47发表:
不确定几位的话,也可以打印到字符串里(sprintf),然后取第一个字符。当然,转换回还得减去'0'
相思爱文 于 2010-09-28 20:47:45发表:
整除1000就行了,五位数就整除10000,……