【2018.2.28】思考与练习

 1 //********************************************************
 2 //*程序作者:兔至
 3 //*完成日期:2018年2月26日
 4 //*章    节:第一章
 5 //*题    号:习题3
 6 //*题    目:要求用户输入一年12个月每月的降雨总量,并采用一
 7 //*            个float数组存储。程序显示:一年内的总降雨量,平
 8 //*            均每月的降雨量,降雨量最大的月份和最小的月份。 
 9 //********************************************************
10 
11 #include<iostream>
12 using namespace std;
13 int main()
14 {
15     cout.precision(2);
16     cout.setf(ios::fixed|ios::showpoint);
17     float rain[12];
18     float sum,ave,tem;
19     int count,max=0,min=0;
20     cout << "请输入12个月每月的降雨总量:\n";
21     for(count=0;count<12;count++)
22     {
23         cin >> tem;
24         if(tem>=0)
25         rain[count]=tem;          //无作用,待改善。
26     }
27     for(count=0;count<12;count++)
28     {
29         sum+=rain[count];
30         if(rain[count]>rain[max])
31         max=count;
32         if(rain[count]<rain[min])
33         min=count;
34         
35     }
36     ave=sum/12.0f;
37     max+=1;
38     min+=1;
39     cout << "一年内的总降雨量:" << sum << "\n平均每月的降雨量:" << ave << "\n降雨量最大的月份:" << max << "\n降雨量最小的月份:" << min;
40     return 0; 
41     
42 }             1 //********************************************************
 2 //*程序作者:兔至
 3 //*完成日期:2018年2月26日
 4 //*章    节:第一章
 5 //*题    号:习题5
 6 //*题    目:成绩批改 
 7 //********************************************************
 8 
 9 #include<iostream>
10 using namespace std;
11 int main()
12 {
13     char answer[5]={"BDAA"};
14     char exam[4];
15     cout << "请输入答案:" ; 
16     int i;
17     char tem;
18     for(i=0;i<4;i++)
19     {
20         cin >> tem;
21         if(!('A'<=tem&&'Z'>=tem))
22         {
          cout << "error!";
          break;
       }
     
else 24 exam[i]=tem; 25 } 26 cout << endl; 27 int count=0; 28 for(i=0;i<4;i++) 29 { 30 if(exam[i]==answer[i]) 31 count++; 32 else 33 cout << ""<<i+1<<""; 34 } 35 cout << endl; 36 switch(count) 37 { 38 case(4):cout << "优秀";break; 39 case(3):cout << "良好";break; 40 case(2):cout << "中等";break; 41 case(1):cout << "较差";break; 42 case(0):cout << "";break; 43 } 44 return 0; 45 }
 1 //********************************************************
 2 //*程序作者:兔至
 3 //*完成日期:2018年2月26日
 4 //*章    节:第一章
 5 //*题    号:习题4
 6 //*题    目:转换语句
 7 //********************************************************
 8 
 9 #include<iostream>
10 using namespace std;
11 char convert(char *sen);
12 int main()
13 {
14     char sentence[100];
15     cout <<"请输入需要转换的语句:\n";
16     cin.getline(sentence,100);
17     convert(sentence);
18     cout << "转换后的语句为:\n" << sentence;
19     return 0;
20 }
21 
22 char convert(char *sen)
23 {
24     int i,word=0;
25     for(i=0;*sen!='\0';i++,sen++)
26     {
27         if(i==0)
28         *sen -=32;
29         if(word==1)
30         {
31             *sen-=32;
32             word=0;
33         }
34         if(*sen==' ')
35         word=1;
36     }
37 }

 

 1 #include<iostream>
 2 #include<stdlib.h>
 3 using namespace std;
 4 int space(int count);
 5 int sort(int &score,int count); 
 6 int ave(int &socre,int count);
 7 int main()
 8 {
 9     int count;
10     cout << "请输入成绩个数:";
11     cin >>  count;
12     cout << endl;
13     if(count<=0)
14     cout << "error!";
15     else
16     {
17         int point[count];
18         point=space(count);
19         cout << "请输入成绩:";
20         cin >> point;
21         cout << endl;
22         int average=ave(point,count);
23         cout << "平均分为:"<<average<<endl;
24         sort(point,count);
25         cout << "排序后成绩为:"<<point;
26     }
27     return 0;
28 }
29     
30 int space(int count)
31 {
32     int *dyn;
33     dyn=new int [count];
34     if(dyn==NULL)
35     {
36         cout << "动态分配内存空间失败!";
37         exit(0);
38         return NULL; 
39     }
40     return *dyn;
41 }
42 
43 int sort(int &score,int count)
44 {
45     int i,j,tem;
46     for(i=0;i<count;i++)
47     {
48         for(j=0;j<count;j++)
49         {
50             if(score[j]>score[i])
51             {
52                 tem=score[j];
53                 score[j]=score[i];
54                 score[i]=tem;
55             }
56         }
57     }
58 }
59 
60 int ave(int &socre,int count)
61 {
62     int i,sum=0;
63     float ave;
64     for(i=0;i<count;i++)
65     {
66         sum+=score[i];
67     }
68     ave=sum/count;
69     return ave;
70 }

敲出了一段错误连篇的代码,深夜绝望。返回指针?动态分配内存后指针和数组的转换?引用数组?

大概的确是C的指针略微有些遗忘,而内存那里也确实没怎么弄懂。想起来,链表和文件好像也不是很扎实。

明日计划:通读c++ primer plus 勾选部分。

 

posted @ 2018-02-28 13:01  兔至  阅读(209)  评论(0编辑  收藏  举报