计算书费
下面是一个图书的单价表:
计算概论 28.9 元/本
数据结构与算法 32.7 元/本
数字逻辑 45.6元/本
C++程序设计教程 78 元/本
人工智能 35 元/本
计算机体系结构 86.2 元/本
编译原理 27.8元/本
操作系统 43 元/本
计算机网络 56 元/本
JAVA程序设计 65 元/本
给定每种图书购买的数量,编程计算应付的总费用。
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int k,i,j;
double sum,a,b[999]={28.9, 32.7, 45.6, 78.0,35.0, 86.2, 27.8, 43.0, 56.0, 65.0};//初始化每种书的价格
cin>>k;
for(i=0;i<k;i++)
{ sum=0;
for(j=0;j<10;j++)
{ cin>>a;
sum+=a*b[j];}
printf("%.2f\n",sum); //cout<<fixed<<setprecision(2)<<sum<<endl;
}
}
平衡饮食
100克不同食品的营养成分含量如下表:
食品--------蛋白质-------脂肪----------碳水化合物
大米--------7.5----------0.75----------78
面----------10-----------1.25----------75
蔬菜--------1.5----------0.19----------4.28
豆类--------35-----------18------------42
蛋一只------5.0----------5.0-----------0.6
瘦肉--------16.5---------28.8----------1.05
牛肉--------17.7---------20.33---------4.06
鱼----------14.9---------0.8-----------0.93
食油--------0------------100-----------0
水果--------0.85---------0.5-----------8
各种营养成分所含热量如下: 蛋白质:4.1千焦耳/克;脂肪:9.3千焦耳/克;碳水化合物:4.1千焦耳/克。所谓平衡饮食是指食品的荤素搭配适当,蛋白质、脂肪和碳水化合物三者提供的热量之比应在1416%:3035%:49~56%之间。
#include <iostream>
using namespace std;
struct yy{
double d;
double z;
double t;
};
int main()
{
double sum[4];
yy a[20],c[20];
a[0].d=7.5,a[0].z=0.75,a[0].t=78;
a[1].d=10,a[1].z=1.25,a[1].t=75;
a[2].d=1.5,a[2].z=0.19,a[2].t=4.28;
a[3].d=35,a[3].z=18,a[3].t=42;
a[4].d=5,a[4].z=5.0,a[4].t=0.6;
a[5].d=16.5,a[5].z=28.8,a[5].t=1.05;
a[6].d=17.7,a[6].z=20.33,a[6].t=4.06;
a[7].d=14.9,a[7].z=0.8,a[7].t=0.93;
a[8].d=0,a[8].z=100,a[8].t=0;
a[9].d=0.85,a[9].z=0.5,a[9].t=8;
c[10].d=0,c[10].z=0,c[10].t=0;
double b[20];
for(int i=0;i<10;i++) {cin>>b[i];}
for(int p=0;p<4;p++){b[p]/=100;}
for(int l=5;l<10;l++) {b[l]/=100;}//鸡蛋按个论 要单独考虑
for(int k=0;k<10;k++){ //使用遍历,每克含量*克数
a[k].d=a[k].d*b[k];
a[k].z=a[k].z*b[k];
a[k].t=a[k].t*b[k];}
for(int f=0;f<10;f++){ //把每种食物的每种营养的总量加和
c[10].d+=a[f].d;
c[10].z+=a[f].z;
c[10].t+=a[f].t;}
for(int j=0;j<10;j++){ //换算成能量
sum[0]+=c[10].d*4.1;
sum[1]+=c[10].z*9.3;
sum[2]+=c[10].t*4.1;}
sum[3]=sum[0]+sum[1]+sum[2];
if(sum[0]/sum[3]>=0.14&&sum[0]/sum[3]<=0.16&&sum[1]/sum[3]>=0.3&&sum[1]/sum[3]<=0.35&&sum[2]/sum[3]>=0.49&&sum[2]/sum[3]<=0.56) //条件输出
cout<<"yes";
else cout<<"no";
return 0;
}
生日相同
在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的学号,出生月日。试找出所有生日相同的学生。
错误1:未排序
#include <iostream>
#include <cstring>
using namespace std;
struct birthday{
int month;
int day;
string id;
int n;};
int main()
{
int k,flag;
cin>>k;
birthday a[99];
for(int i=0;i<k;i++) {cin>>a[i].id>>a[i].month>>a[i].day,a[i].n=0;}
for(int l=0;l<k;l++){ flag=0;
for(int j=1;j<k;j++){
if(a[j].month==a[l].month&&a[j].day==a[l].day&&a[l].n==0){
cout<<a[l].month<<" "<<a[l].day<<" "<<a[l].id<<" ";
a[l].n=1;
flag=1;}
if(a[j].month==a[l].month&&a[j].day==a[l].day&&a[j].n==0){
cout<<a[j].id<<" ";
a[j].n=1;}}
if(flag)
cout<<endl;
}
}
//flag用来控制换行,n用来标记此人是否已经在之前循环中找到生日相同的人,防止重复。
**错误(2):求大神指正**
#include <iostream>
#include <algorithm>
using namespace std;
struct birthday{
int month;
int day;
string id;
int n;};
int main()
{
int k,flag,i,j;
cin>>k;
birthday a[99],t;
for(i=1;i<=199;i++)
{ for(j=0;j<k-1;j++)
if(a[j].month>a[j+1].month)
{ t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
else if(a[j].month==a[j+1].month)
{ if(a[j].day>a[j+1].day)
{ t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(i=0;i<k;i++) {cin>>a[i].id>>a[i].month>>a[i].day;a[i].n=0;}
for(int l=0;l<k;l++){ flag=0;
for(j=1;j<k;j++){
if(a[j].month==a[l].month&&a[j].day==a[l].day&&a[l].n==0){
cout<<a[l].month<<" "<<a[l].day<<" "<<a[l].id<<" ";
a[l].n=1;
flag=1;}
if(a[j].month==a[l].month&&a[j].day==a[l].day&&a[j].n==0){
cout<<a[j].id<<" ";
a[j].n=1;}}
if(flag)
cout<<endl;
}
}
成绩统计:
某班级有n人(n<80),期末考试的六门学科分别是语文、数学、英语、物理、化学、生物。考试成绩出来了,现要求每人的成绩总分和各学科的平均分。输入班级人数,每人的座号和各学科成绩,输出每人的座号、成绩和各学科平均分(四舍五入保留1位小数)
#include <iostream>
#include <iomanip>
using namespace std;
struct mark{
int id;
int yu;
int shu;
int ying;
int wu;
int hua;
int sheng;};
int main()
{
int k,sum,s[6]={0};
double ave[6];
cin>>k;
mark a[99];
for(int i=0;i<k;i++) cin>>a[i].id>>a[i].yu>>a[i].shu>>a[i].ying>>a[i].wu>>a[i].hua>>a[i].sheng;
for(int j=0;j<k;j++){
sum=a[j].yu+a[j].shu+a[j].ying+a[j].wu+a[j].hua+a[j].sheng;
cout<<a[j].id<<" "<<a[j].yu<<" "<<a[j].shu<<" "<<a[j].ying<<" "<<a[j].wu<<" "<<a[j].hua<<" "<<a[j].sheng<<" "<<sum<<endl;
}
for(int l=0;l<k;l++){
s[0]+=a[l].yu;
s[1]+=a[l].shu;
s[2]+=a[l].ying;
s[3]+=a[l].wu;
s[4]+=a[l].hua;
s[5]+=a[l].sheng;}
for(int m=0;m<6;m++){
ave[m]=(double)s[m]/k;
cout << fixed <<setprecision(1)<<ave[m]<<" ";}
return 0;
}