一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对应 arr[0]=8,index[2]=3 对应 arr[3]=0,以此类推…… 很容易得到电话号码是18013820100。
本题要求你编写一个程序,为任何一个电话号码生成这段代码 —— 事实上,只要生成最前面两行就可以了,后面内容是不变的。
输入格式:
输入在一行中给出一个由11位数字组成的手机号码。
输出格式:
为输入的号码生成代码的前两行,其中arr中的数字必须按递减顺序给出。
#include<stdio.h>
#include<string.h>
int main()
{
char p[20];//数组取小会发生运行时错误
gets(p);
int a[20] = {0};
int arr[20] = {0};
int index[20] = {0};
int i,j,temp,lenarr,flag = 0;
for (i = 0; i < 11; ++i )//计算一共有哪几种数字;
{
j = p[i] - '0';//转换为数字
++a[j];
}
for (i = 0, j = 9; j >= 0; --j)//有几种数字都放到arr里;保证数组内数字是倒序
{
if(a[j])
{
arr[i++] = j;
}
}
lenarr = i;
for(i = 0; i < 11; ++i)//创造index数组,已经确定了arr数组进