c语言编程题,急急急!

/*键盘输入一个高精度的正整数n(<=240),去掉其中任意s个数字后剩下的数字按原左右次序组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得剩下
的数字组成的新数最大。*/
n的位数<=240

我用C++写的,只要把几个输入输出函数改一下,就跟C一样了

#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
void main()
{
char ary_num[240]={};
int n=0,s;
cout<<"请输入一个正整数(必须小于等于240位):";
gets(ary_num);
for(int i=0;ary_num[i]!=0;i++)
n++;
cout<<"这个数有多少位? n="<<n<<endl;
cout<<"想去掉其中多少个数字?(s必须小于n)s=";
cin>>s;
cout<<endl;
srand(clock());
for(int i=1;i<s;i++)
{//删掉任意s位数
int num_del=rand()%(n+1);
if(num_del!=n)
for(int j=num_del;j<n;j++)
ary_num[j]=ary_num[j+1];
else
;
n--;
}
for(int i=0;i<n;i++)
{//把剩余数字按从大到小排序
for(int j=i;j<n;j++)
if(ary_num[j]>ary_num[i])
{
char temp=ary_num[j];
ary_num[j]=ary_num[i];
ary_num[i]=temp;
}
}
ary_num[n-1]='\0';
cout<<"剩余数字组成最大整数为:";
puts(ary_num);
cout<<endl;
system("pause");
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-06-04
n(<=240) 这个很大。。

我来说吧,不要看着是数字,,其实就是一堆字符
所以你可以
定义
char ss[300];
gets(ss); 在处理。。就行了。。。

整个程序都是字符来处理就行

http://zhidao.baidu.com/link?url=mfLr1kZIaWb662FYobICxPO3vXCdK03-SRwDyWeKJeO9UlxAaa-6tRkK8v46uER3NxVih-ARuScZ8i-1NphXiq
这里有一道相同的题目不过是求最小值

c语言题目急急急
首先,我们使用外层循环控制每一行的输出。在每一次迭代中,我们首先输出空格,然后输出当前行中的数字。我们使用变量 i 来控制每一行的输出。对于每一行,我们使用内层循环来控制每一个数字的输出。在内层循环中,我们从 i 到 1 依次输出每一个数字。在每一行输出完成后,我们使用 printf("\\n") 输出...

c语言小题目。急急急
1. 编程实现:从键盘上接收10个整数,并对其进行排序(要求排成升序)main(){int a[10],i,j,k,t;for(i=0;i<10;i++) scanf("%d",&a[i]);for(i=0;i<9;i++){k=i;for(j=i+1;j<10;j++)if(a[j]<a[k]) k=j;if(k!=i){t=a[k];a[k]=a[i]; a[i]=t;} ...

急!急!简单c语言编程题,求编写代码
\/\/第一题#include<stdio.h>void fun(int n){ int i,j,k,t;for(k=0;k<n;k++)\/\/控制总行数{ for(i=0;i<n-k-1;i++)\/\/控制输出空格,因为空格不好看见,就用*代替 printf("%c",'*'); for(j=0;j<2*k+1;j++)\/\/控制输出字母 { printf("%c",65+j)...

C语言作业,急急急求解答
1.优化程序代码:检查程序中是否存在冗余、重复计算或者低效算法等因素,对代码进行优化和精简,以提高程序的运行效率。2.延迟加载数据:考虑将一些不必要立即加载的数据进行延迟加载,减少程序启动时的数据负担。3.异步加载数据:使用异步加载技术,将一些需要联网获取的数据离线处理,并在后台进行加载,避免程...

C语言编程,求解,急用
1、include <stdio.h> main(){int n;printf("请输入分钟数:");scanf("%d",&n);if(n>24*60)printf("%d分钟相当于%d小时%d分钟\\n",n,n\/60,n%60);else printf("%d分钟相当于%d天%d小时%d分钟\\n",n,n\/(24*60),n%(24*60)\/60,n%(24*60)%60);} 2、include <stdio.h> main...

c语言编程题,用for循环!急急急
include<stdio.h>int main(){int hg,bhg;for(hg=1;hg<2000;hg++)for(bhg=0;bhg<2000;bhg++)if(hg*5-bhg*18==9931){printf("%d",hg);}return 0;}

c语言编程题,请高手帮忙做一下,拜谢,急急急急……
1.include <stdio.h> double funcPi(int);int main(void){ int arg;printf("Input the argument: ");\/\/ \/\/ 无异常输入 \/\/ while (!scanf("%d", &arg)){ printf("Check your input and retry: ");while (getchar()!='\\n'){ continue;} } while (getchar()!='\\n'){ continue...

C语言问题,急
逗号运算符。先执行括号内的表达式。a=4*5=20 a*2=40 表达式a=4*5,a*2的值是40,且a的值是20 a+6=20+6=26 逗号运算符,最后一个表达式的值就是整个表达式的值。表达式(a=4*5,a*2),a+6的值是26。

c语言程序设计有关编程题,急求答案
1题#include "stdio.h"main(){ int n,i;float sum=0,t,a=1.0,b=1;printf("please input n:");scanf("%d",&n);for(i=0;i<n;i++){ t=a\/b;sum+=t;b=b+2;} printf("sum=%f\\n",sum);} 2题#include "stdio.h"include"math.h"main(){ int n,bai,shi,ge;while(1)...

请教几个简单的C语言问题!急!在线等!
4、二进制文件虽然也可在屏幕上显示,但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。格式控制串是一个字符串,必须用双引号括起来,它表示了输入输出量的数据类型。5、空语句:只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。在程序中...

相似回答