小小计算器
#include<iostream>
#include<iomanip>
#include<math.h>
#include<string>
#include <stdio.h>
#include<stdlib.h>
using namespace std;
void function_1 ();
void function_2 ();
void function_3 ();
void function_4 ();
void function_5 (int num);
void function_6 (float a);
void function_7 (int year);
void function_8 (int grade);
void function_9 (int n);
void function_10 (int n);
void function_11 (int n);
void function_12 (int sum1,int sum2);
void function_13 ();
int function_14 (int x,int y);
void function_15 (int *max,int *min);
void function_16 (int n,int a[]);
void function_17 ();
void function_18 (int a[][100] ,int x) ;
void function_19 (char c[]);
void function_20 ();
void function_21 ();
struct students
{
int num;
char name[20];
float grade;
};
void function_22 (struct students person[],float sum_grade);
void function_23( );
int c;
void function_24(int n,char x,char y,char z);
int function_25(char *s);
int main()
{
cout<<"********************************************\n\
* 小小计算器 \n\
* 1 加法 \n\
* 2 减法 \n\
* 3 乘法 \n\
* 4 除法 \n\
* 5 判断数字的位数 \n\
* 6 计算圆面积 \n\
* 7 判断闰年 \n\
* 8 成绩转换 \n\
* 9 计算从1到输入数之间的奇数和 \n\
* 10 计算从1到输入数之间的偶数和 \n\
* 11 输出从1到输入数之间所有3的倍数 \n\
* 12 求即被3整除又被5整除的数 \n\
* 13 求水仙花数 \n\
* 14 求最大值 \n\
* 15 求最大最小值 \n\
* 16 数组—冒泡排序 \n\
* 17 数组-矩阵转置 \n\
* 18 数组-求矩阵对角线和 \n\
* 19 统计单词输入个数 \n\
* 20 静态创建链表 \n\
* 21 动态创建链表 \n\
* 22 学生成绩排序 \n\
* 23 学生成绩普涨10分 \n\
* 24 汉诺塔 \n\
* 25 统计句子中单词个数 \n\
* 26 输入-1退出本程序 \n\
***********************************************\n" ;
while(1)
{
int choose;
cout<<" "<<'\n';
cout<<"请选择计算类型:"<<'\n';
cout<<"输入1即表示执行上述1代表的运算,并输出不同进制的结果"<<'\n';
cout<<"输入-1结束本程序" <<'\n';
cin>>choose;
if(choose==-1)
{cout<<"欢迎下次使用!";break;}
switch (choose)
{
case 1: function_1(); break;
case 2: function_2(); break;
case 3: function_3(); break;
case 4: function_4(); break;
case 5: {
while(1)
{
cout<<"请输入一个整数"<<endl;
int num;
cin>>num;
if (num<0)
cout<<"请输入一个正整数"<<endl;
else
if (num/1000>=1)
cout<<"请输入一个3位以下的数";
else
{
function_5 (num);
break;}
}
} break;
case 6: {
float a;
cout<<"请输入所计算圆的半径:";
cin>>a ;
function_6(a);
} break;
case 7: {
int year;
cout<< "请输入要判断的年份:";
cin>>year;
function_7(year);
} break;
case 8: {
int grade;
cin>>grade;
function_8(grade);break;
}
case 9:{int n;
cout<<"请输入一个正整数n:";
cin>>n;
function_9(n);
} break;
case 10: {
int n;
cout<<"请输入一个正整数:";
cin>>n;
function_10(n); break;
}
case 11:{
int n;
cout<<"请输入一个正整数:";
cin>>n;
function_11(n); break;
}
case 12:{
int sum1, sum2;
cout<<"请输入两个不同的数:(6 7) ";
cout<<"注意!请按从小到大排列,如果中间没有符合条件的数,将不会返回结果!"<<'\n';
cin>>sum1;cin>>sum2;
function_12(sum1,sum2); break;
}
case 13: function_13(); break;
case 14: {
int x, y,max;
cout<<"请输入要比大小的数字:";
cin>>x;cin>>y;
max=function_14(x,y);
cout<<"两个数的最大值是";
cout<<max;
break;
}
case 15:{
int x, y,max,min;
cout<<"请输入要比大小的数字:";
cin>>x;cin>>y;
max=x;min=y;
function_15(&max,&min);
cout<<"最大值是"<<max<<endl;
cout<<"最小值是"<<min<<endl;
break;
}
case 16: {
cout<<"输入你要排序的个数"<<'\n';
int n;
cin>>n;
int a[100];
for(int j=0;j<n;j++)
cin>>a[j];
function_16(n,a); break;
}
case 17: function_17(); break;
case 18:
{
int x,y,i,j,a[100][100];
cout<<"请输入需要转置的数列为几行几列(4 6)";
cin>>x;cin>>y;
cout<<"请按行输入矩阵:";
for (i=0; i<x; i++){
for (j=0; j<y; j++){
cin>>a[i][j];
}
}
function_18(a,x); break;
}
case 19: {
cout<<"输入要判断的语句"<<'\n';
char c[1000];
getchar();
gets(c);
function_19(c); break;}
case 20: function_20(); break;
case 21: function_21(); break;
case 22:{
struct students person[10];
int i;
float sum_grade = 0;
for ( i=0; i<10; i++)
{
cout<<"请输入第"<<i+1<<"组数据" <<'\n' ;
cout<<"请输入学号:";
cin>>person[i].num;
cout<<"请输入姓名:";
cin>>person[i].name;
cout<<"请输入成绩:";
cin>>person[i].grade;
cout<<'\n';
sum_grade += person[i].grade;
};
function_22(person,sum_grade);
break;
} ;
case 23: function_23(); break;
case 24:{int n;
char x='A',y='B',z='C';
cout<<"请输入传递的总个数" ;
cin>>n;
function_24(n,x,y,z);
cout<<c;};
case 25:{
char zf[100];
cout<<"请输入一行连续的单词";
getchar();
gets(zf);
cout<<"单词个数"<<function_25(zf);
break;
}
default:cout<<"错误!请输入1-22的数字!" ;
}
}
return 0;
}
void function_1 ()
{
int a, b, result;
cout<<"请输入需要计算的数据(整数),如 1 3"<<'\n';
cin>>a;
cin>>b;
result = a + b;
cout<<"加法结果的十进制形式是"<<dec<<result<<endl;
cout<<"加法结果的八进制形式是"<<oct<<result<<endl;
cout<<"加法结果的十六进制形式是"<<hex<<result<<endl;
}
void function_2 ()
{
int a, b, result;
cout<<"请输入需要计算的数据(整数),如 6 4"<<'\n';
cin>>a;
cin>>b;
result = a - b;
cout<<"加法结果的十进制形式是"<<dec<<result<<endl;
cout<<"加法结果的八进制形式是"<<oct<<result<<endl;
cout<<"加法结果的十六进制形式是"<<hex<<result<<endl;
}
void function_3 ()
{
float a, b, result;
cout<<"请输入需要计算的数据(浮点数),如 6 7";
cin>>a;cin>>b;
result = a * b;
cout<<"乘法结果的指数形式是"<<setiosflags(ios::scientific)<<result<<endl;
cout<<"乘法结果的小数形式是"<<setiosflags(ios::fixed)<<result<<endl;
}
void function_4 ()
{
float a, b, result;
cout<<"请输入需要计算的数据(浮点数),如 6 7";
cin>>a;cin>>b;
if (b == 0)
{
cout<<"除数为0,无法进行除法运算\n";
}
else{
result = a / b;
cout<<"除法运算的结果是"<<result<<endl;
}
}
void function_5 (int num)
{
int m[3] ,longs=0,num2=num;
while(num!= 0)
{
num/= 10;
longs++;
}
cout<<"该数的位数是"<<longs<<endl;
m[1] = num2 / 100;
m[2] = (num2/10) % 10;
m[3] = num2 %10;
cout<<"百位是"<<m[1]<<endl;
cout<<"十位是"<<m[2]<<endl;
cout<<"个位是"<<m[3]<<endl;
}
void function_6 (float a)
{
float result;
const float P = 3.14;
result = a * a * P;
cout<<"该圆面积是"<< result;
}
void function_7 (int year)
{
if ((year%4==0&&year%100!=0)||(year%400==0))
cout<<year<<"是闰年" ;
else
cout<<year<<"不是闰年";
}
void function_8 (int grade)
{
switch(grade/10){
case 10:
case 9: cout<<"A";break;
case 8: cout<<"B";break;
case 7: cout<<"C";break;
case 6: cout<<"D";break;
case 5: cout<<"E";break;
default: cout<<"太差了";
}
}
void function_9 (int n)
{
int i, sum;
for(i = 1;i <= n; i++);
{
if (i % 2 == 1){
sum += i;
}
}
cout<<"1到n之间所有奇数和是"<<sum;
}
void function_10 (int n)
{
int i = 1, sum = 0;
while ( i <= n)
{
if (i % 2 == 0){
sum += i;
cout<<i<<'\t';
}
i++;
}
cout<<"1到输入值之间所有偶数和是"<<sum;
}
void function_11 (int n)
{
int i = 1;
cout<<"从1到输入值之间所有3的倍数";
do {
if (i % 3 == 0)
{
cout<<i<<'\t';
}
i++;
}
while ( i<=n );
}
void function_12 (int sum1,int sum2)
{
int i;
for (i=sum1; i <= sum2; i++){
if (i%3==0&&i%5==0)
{
cout<<i<<'\t';
}
}
}
void function_13 ()
{
int g,s,b, n=100;
for(n;n<1000;n++)
{
g=n%10;
s=n/10%10;
b=n/100;
if(n==g*g*g+s*s*s+b*b*b)
cout<<n<<'\t';
}
}
int function_14(int x,int y){
int r;
if(x>y){
r=x;
x=y;
y=r;
}
return y;
}
void function_15(int *max,int *min){
int temp;
if(*min>*max){
temp=*min;
*min=*max;
*max=temp;
}
}
void function_16 (int n,int a[])
{
int i,j,t;
for(i=1;i<n;i++)
{
for(j=0;j<n-i;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(j=0;j<n;j++)
cout<<a[j]<<endl;}
void function_17()
{
int x, y, i, j, a[100][100], b[100][100];
cout<<"请输入需要转置的数列为几行几列:(4 5)"<<" ";
cin>>x;
cin>>y;
cout<<"请按行输入矩阵:"<<'\n';
for(i=0; i<x; i++){
for(j=0; j<y; j++){
cin>>a[i][j];
}
}
for (i=0; i<x; i++){
for (j=0; j<y; j++){
b[j][i] = a[i][j];
}
}
cout<<"转制后的矩阵是:"<<'\n';
for (i=0; i<y; i++){
for (j=0; j<x; j++)
{
cout<< b[i][j]<<'\t';
}
}
}
void function_18(int a[][100],int x)
{
int i, j, result=0;
for (i=0; i<x; i++){
result += a[i][i];
}
cout<<"矩阵主对角线和为"<<result;
}
void function_19 (char c[])
{
int count[26]={0} ,i;
for(i=0;c[i]!='\0';i++)
count[c[i]-'a']++;
for(i=0;i<26;i++)
cout<<count[i]<<endl;
}
void function_20()
{
struct student
{
char name[10];
int age;
student *next;
};
student d = {"one",1,NULL};
student c = {"two",2,&d};
student b = {"three",3,&c};
student a = {"four",4,&b};
student *head = &a;
student *point = head;
while (point)
{
cout<<point->name<<" "<<point->age<<endl;
point = point ->next;
}
}
void function_21()
{
typedef struct node {
int data;
struct node* next;
} *nodes;
int count;
nodes head, p;
p = (nodes)malloc(sizeof(node));
p->next = NULL;
head = p;
p = head;
cout << "请输入链表数据,输入负数为截至标志:" << endl;
while (cin >>count && count > 0)
{
nodes q = (nodes)malloc(sizeof(node));
q->data = count;
q->next = NULL;
p->next = q;
p = q;
}
cout << "输出链表:" << endl;
p = head->next;
while (p != NULL)
{
cout << p->data << " ";
p = p->next;
}
}
void function_22(struct students person[],float sum_grade)
{
struct students z;
int i, j, t;
float aver_grade;
for (i=1;i<11;i++)
{
for(j=0;j<11-i;j++)
if(person[j].grade>person[j+1].grade)
{
z = person[j];
person[j] = person[j+1];
person[j+1] = z;
}
}
for (j=0; j<10; j++)
{
cout<<"学号是"<<person[j].num<<"姓名是"<< person[j].name<<"成绩是"<<person[j].grade<<'\n';
}
cout<<'\n' ;
cout<<"总成绩是"<<sum_grade<<"平均成绩是"<<sum_grade/10<<'\n';
}
void function_23()
{
int i,a[10];
FILE *fp;
fp=fopen("d:\\my.txt","r+");
for(i=0;i<10;i++){
fscanf(fp,"%d",&a[i]);
}
rewind(fp);
for(i=0;i<10;i++)
fprintf(fp,"%d\n",a[i]+10);
fclose(fp);
printf("已完成操作\n");
}
void function_24(int n,char x,char y,char z)
{
if(n==1)
{
cout<<x<<"---->"<<z<<endl;c++;
}
else
{
function_24(n-1,x,z,y);
cout<<x<<"---->"<<z<<endl;c++;
function_24(n-1,y,x,z);
}
}
int function_25 (char *s)
{
int i;
int flat=1,c=0;
for(i=0;s[i]!='\0';i++){
if(s[i]==' ')
flat=1;
else if(flat==1&&s[i]!=' '){
flat=0;
c++;
}
}
return c;
}
26将B的值赋给A
#include<iostream>
#include<string.h>
using namespace std;
void fun(char *a,char *b);
int main()
{ int i;
char a[10],b[10];
cin>>b;
fun(a,b);
for(i=0;a[i]!='\0';i++)
cout<<a[i];
}
void fun(char *a,char *b)
{ while((*a=*b)!='\0')
{ a++,b++;}
}