|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #if(0) // 全部的代码我只想说一句(看答案之后我在思考我要不要学习编程了)
- // 0 编写一个程序,接收用户的输入,并将前 9 个字符以正方形矩阵(3 * 3)的方式输出
- int main(void){
- char (*p)[3] ; //声明一个数组指针
- int i,n=0;
- char str[255]; //接收用户输入的任意东西
- printf("请输入一穿内容:\n");
- scanf("%s",str);
- for (int i = 0; i < 3; i++)
- {
- for (int j = 0; j < 3; j++)
- {
- *(*(p+i)+j) = str[n]; // 对数组指针进行赋值
- n++;
- }
- }
- for (int i = 0; i < 3; i++)
- {
- for (int j = 0; j < 3; j++)
- {
- printf("%c ", *(*(p+i)+j)); //对数组指针进行打印输出
- }
- printf("\n");
- }
- system("pause");
- }
- #endif
- #if(0)
- // 1 要求程序自动计算用户输入的字符,并以最大的正方形矩阵输出;
- int main(){
- char str[255];
- int length , n=1,m=0;
-
- printf("请输入一段内容");
- scanf("%s",str); //获取输入的任意字符串
- length = strlen(str); // 获取输入的字符串的长度
- while ((n*n)<length) //得到最适合输出的方针数组
- {
- n++;
- }
- char (*p)[n-1]; // 声明数组
- for (int i = 0; i < n-1; i++)
- {
- for (int j = 0; j < n-1; j++)
- {
- *(*(p+i)+j) = str[m]; //对二维数组的赋值
- m++;
- }
- }
- // 打印二维数组的内容
- for (int i = 0; i < n-1; i++)
- {
- for (int j = 0; j < n-1; j++)
- {
- printf("%c ",*(*(p+i)+j)); //对数组指针的打印
- }
- printf("\n");
- }
- system("pause");
- }
- #endif
- #if(0)
- // 2用户输入待查询年月份(输入格式:2015-03),输出该月份的 PM2.5 值。 (个人版初版)
- int main(){
- float arr[3][12]={
- {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 31.3, 35.5, 58.7, 49.6, 55.5},
- {59.8, 54.9, 33.1, 38.2, 26.6, 20.5, 27.8, 38.5, 41.5, 44.7, 38.1, 41.5},
- {34.9, 36.4, 47.5, 37.9, 30.6, 23.4, 26.6, 34.3, 0.0, 0.0, 0.0, 0.0}
- };
- float (*p)[12] ;
- p = arr; //数组指针的初始化
- int year , month;
- printf("请输入带查询的日期(年-月):");
- scanf("%d-%d",&year,&month); // 接收用户的输入 并判断 出结果
- switch (year)
- {
- case 2014:
- // printf("2014");
- printf("%d年%d月PM2.5的值为:%.2f\n",year,month,**(p+(month-1)));
- break;
- case 2015:
- // printf("2015");
- printf("%d年%d月PM2.5的值为:%.2f\n",year,month,*(*(p+1)+(month-1)));
- break;
- case 2016:
- printf("%d年%d月PM2.5的值为:%.2f\n",year,month,*(*(p+2)+(month-1)));
- default:
- break;
- }
- system("pause");
- }
- #endif
- #if(0)
- // 2用户输入待查询年月份(输入格式:2015-03),输出该月份的 PM2.5 值。 (个人版初版)
- int main(){
- float arr[3][12]={
- {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 31.3, 35.5, 58.7, 49.6, 55.5},
- {59.8, 54.9, 33.1, 38.2, 26.6, 20.5, 27.8, 38.5, 41.5, 44.7, 38.1, 41.5},
- {34.9, 36.4, 47.5, 37.9, 30.6, 23.4, 26.6, 34.3, 0.0, 0.0, 0.0, 0.0}
- };
- float (*p)[12] ;
- p = arr;
- int year , month;
- printf("请输入带查询的日期(年-月):");
- scanf("%d-%d",&year,&month);
- printf("%d年%d月PM2.5的值为:%.2f\n",year,month,*(*(p+(year-2014))+(month-1))); //不需要判断年份,年份-2014 得到的值为数组的偏移量
-
- system("pause");
- }
- #endif
- #if(0)
- // 将下列数据打印为横向直方图 无大小值 (没看答案之前的代码,真的是太可爱了)
- int main(){
- float arr[3][12]={
- {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 31.3, 35.5, 58.7, 49.6, 55.5},
- {59.8, 54.9, 33.1, 38.2, 26.6, 20.5, 27.8, 38.5, 41.5, 44.7, 38.1, 41.5},
- {34.9, 36.4, 47.5, 37.9, 30.6, 23.4, 26.6, 34.3, 0.0, 0.0, 0.0, 0.0}
- };
- float (*p)[12] = arr;
- for (int i = 0; i < 3; i++)
- {
- for (int j = 0; j < 12; j++)
- {
- if(i==0){ //蠢到不想解释
- if(*(*(p+i)+j)==0 ){
- continue;
- }else
- {
- printf("2014年 %2d月:",j);
- for (int m = 0; m < *(*(p+i)+j); m++)
- {
- printf("*");
- }
- printf("\n");
- }
- }else if(i==1){
- if(*(*(p+i)+j)==0 ){
- continue;
- }else
- {
- printf("2015年 %2d月:",j);
- for (int m = 0; m < *(*(p+i)+j); m++)
- {
- printf("*");
- }
- printf("\n");
- }
- }else
- {
- if(*(*(p+i)+j)==0 ){
- continue;
- }else
- {
- printf("2016年 %2d月:",j);
- for (int m = 0; m < *(*(p+i)+j); m++)
- {
- printf("*");
- }
- printf("\n");
- }
- }
-
- }
-
- }
-
-
- system("pause");
- }
- #endif
- #if(1)
- //4 将下列数据打印为横向直方图
- int main(){
- float arr[3][12]={
- {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 31.3, 35.5, 58.7, 49.6, 55.5},
- {59.8, 54.9, 33.1, 38.2, 26.6, 20.5, 27.8, 38.5, 41.5, 44.7, 38.1, 41.5},
- {34.9, 36.4, 47.5, 37.9, 30.6, 23.4, 26.6, 34.3, 0.0, 0.0, 0.0, 0.0}
- };
- float (*p)[12] = arr; //数组指针的初始化
- float MAX ,MIN;
- MAX = MIN =arr[1][0];
- for (int i = 0; i < 3; i++)
- {
- for (int j = 0; j < 12; j++)
- {
- if(*(*(p+i)+j)==0 ){ //当值为0的时候 不进行任何操作
- continue;
- }else
- {
- if(*(*(p+i)+j) > MAX){ // 大小值得 判断
- MAX = *(*(p+i)+j);
- }
- if(*(*(p+i)+j) < MIN){
- MIN = *(*(p+i)+j);
- }
- }
- }
- }
- printf("最小值:%.2f,最大值%.2f\n",MAX,MIN);
-
- for (int i = 0; i < 3; i++)
- {
- for (int j = 0; j < 12; j++)
- {
- if(*(*(p+i)+j)==0 ){ //当值为0的时候 不进行任何操作
- continue;
- }else
- {
- printf("%d年 %2d月:",i+2014,j+1); // 打印年月
- for (int m = 0; m < *(*(p+i)+j); m++) // 打印 *
- {
- printf("*");
- }
- printf("\n");
- }
- }
-
- }
- system("pause");
- }
- #endif
复制代码 |
|