上机内容:C++程序的编写和运行
上机目的:掌握简单C++程序的编辑、编译、连接和运行的一般过程
我的程序:
运行结果:
心得体会:亲娘咧,可算做出来了,本来进制转换挺好做的,就是老师出的这些小要求挺复杂,着实费了一番力气。又回顾了一下转化ascii码的用法,加个char输出就行了
知识点总结:略
上机目的:掌握简单C++程序的编辑、编译、连接和运行的一般过程
我的程序:
/*
Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 作 者:赵玲玲
* 完成日期:2013 年 12 月 20 日
* 版 本 号:v1.0
* 输入描述: 无
* 问题描述: 数组用于进制转换
* 程序输出: 略
* 问题分析:要求比较多,都在注解里面
* 算法设计:略
*/
#include <iostream>
using namespace std;
void tran(int n, int d);
void ttran(int a[50],int);
int main()
{
int num;
num=1000;
cout<<num<<"转换为8进制数为:";
tran(num,8);
cout<<endl;
cout<<num<<"转换为24进制数为:";
tran(num,24);
cout<<endl;
cout<<num<<"转换为2进制数为:";
tran(num,2);
cout<<endl;
return 0;
}
void tran(int n, int d)
{
int a[50]= {0},i=0,j,t; //给数组赋值,防止后面比较大小时乱赋值
while(n!=0)
{
a[i++]=n%d; //a[]存放各个余数
n/=d;
}
for(j=i-1; j>=0; j--) //倒着输出,从a[0]到a[i]
{
if(a[j]>10) //若大于10,以字母形式输出
{
t=a[j]+55; //根据ascii码,加上55
cout<<(char)t;
}
else
{
cout<<a[j];
}
}
cout<<endl;
cout<<"各位数中的最大值是:";
ttran(a,i);
}
void ttran(int a[50],int s) //s为进制数的个数
{
int i,max=-1,b[50],t;
for(i=0; i<s; i++)
{
if(max<a[i])
{
max=a[i]; //求出最大值
}
}
if(max>10)
{
t=max+55;
cout<<(char)t;
}
else
{
cout<<max;
}
cout<<",出现在第";
for(i=0; i<s; i++)
{
b[s-i]=a[i]; //将a数组中的值倒叙付给b数组,a[5]即b[0]
}
for(i=0; i<s; i++)
{
if(b[i]==max)
{
cout<<i<<" "; //这样输出的“第几位”就是顺序的了
}
}
cout<<"位上。";
}
运行结果:
心得体会:亲娘咧,可算做出来了,本来进制转换挺好做的,就是老师出的这些小要求挺复杂,着实费了一番力气。又回顾了一下转化ascii码的用法,加个char输出就行了
知识点总结:略