zoukankan      html  css  js  c++  java
  • 编程训练_字典_字符串

    题目描述:

     描述
    定义一个字符串序列 s[1]="1",s[2]="2", ..., s[n] = 数字 n 转化成字符串后的结果
    
    输出 s[1] 到 s[n] 中,(字典序)最大的那个字符串
    
    输入
    输入包含多组数据。
    
    每组数据输入一行一个整数 n(n<=1e6)。
    
    输入以 n=0 结束。
    输出
    对于每组数据,输出一行一个整数表示答案
    样例输入
    9
    19
    871
    0
    样例输出
    9
    9
    99

    关键点:

    把数字转化为字符串,然后按照字典的顺序输出最大值

    本人代码:

    #include <stdio.h> 
    # define Max 7 
    int main(void)
    {
    	int a, temp, head;
    	int A[Max+1] = {0}; 
    	scanf("%d",&a);
    	
    	while (a !=0 )
    	{
    		int A[Max+1] = {0}; 
    		int len = 0;
    		int i = Max;
    		// 转化为数组
    		while(a > 0)
    		{
    			temp = a%10;
    			A[i] = temp;
    				
    			if (A[i] != 0)
    			{
    				len++;
    			}
    			i--;
    			a /= 10;
    			head = i+1;	// 求出第一位不为零的位置 
    		} 
    		
    		// 判断字典数最大的值 
    		// 若只有一位,则直接输出
    		if (len == 1)
    		{
    			printf("%d
    ",A[Max]);
    		 } 
    		// 若大于1位,且最高位不为9,则输出len-1位9
    		else if (A[head] != 9 && len!=1)
    		{
    			for (i=1; i<len; i++)
    			{
    				printf("9");
    			}
    			printf("
    ");
    		 } 
    		// 若 大于一位,且最高位为9,则输出最高位,之后再判断次高位 
    		else if (A[head] == 9 && len!=1)
    		{	
    			for (i=head; i<=Max; i++)
    			{
    				printf("%d",A[i]);
    			}
    			printf("
    ");
    		}
    		scanf("%d",&a);	
    	}
    
    	return 0;
    }
    

      

    本人计算机小白一枚,对编程有浓厚兴趣,在此贴出自己的计算机学习历程,还有很多不足,望多多指教! 读书后发现好多的内容与具体专业有偏差,没来得及完成,虽然“有时间我就会做...”是人生最大的谎言,但有时间我会继续搞定未完成的内容,有始有终,兴趣使然!
  • 相关阅读:
    【二食堂】Alpha
    【二食堂】Alpha- 发布声明
    【Beta】Scrum Meeting 4
    【Beta】Scrum Meeting 3
    【Beta】Scrum Meeting 2
    【Beta】Scrum Meeting 1
    beta设计和计划
    alpha事后分析
    alpha项目展示
    Scrum Meeting 最终总结
  • 原文地址:https://www.cnblogs.com/Robin5/p/11196523.html
Copyright © 2011-2022 走看看