Zero0_18 2021-05-13 23:11 采纳率: 50%
浏览 110
已采纳

求两个C++问题的流程图

  1. 输入一个字符串,内有数字及非数字,如“a123b 232”。将其连续的数字作为一个整数存入一个数组num中,例如123放在num[0]中。统计共有多少个整数,并输出这些整数。
  2. 输入10个学生5门课的成绩,分别用函数求:
    • 每个学生平均分;
    • 每门课的平均分;
  • 写回答

2条回答 默认 最新

  • CSDN专家-孙老师 2021-05-14 17:47
    关注

    流程大概是这样的。

    问题1:

    定义一个数组,用于存放字符串中的整数,数组中的所有元素初值均为0。

    输入一个字符串,利用for循环遍历字符串中的所有字符。

    每次循环:

    1)如果,该字符介于0-9之间(实际比较的是ASCII码):则将这个字符转换为数字(int(str1[i] - '0')),加上前一位数字乘以10,将得到这个整数存入一个数组中,标识符设为1,继续下一轮循环。

    2)否则,即该字符不是数字,意味着上一个整数判断完成,开始寻找下一个整数,将标识符设为0,开始下一轮循环。

    最后,利用循环将数组中的整数输出。

    问题2:

    利用循环输入10个同学,每个同学5门课程的成绩。

    定义一个函数用于求同学的平均成绩:对所有同学进行循环,每次循环,将一个同学的5门课程的成绩求和,然后除以5,就是这个同学的平均分,并将其输出。

    定义一个函数用于求课程的平均成绩:对所有课程进行循环,每次循环,将一个课程的10位同学的成绩求和,然后除以10,就是这个课程的平均分,并将其输出。

    最后,在主程序中调用这两个函数。

    问题1,代码大致是这样的。

    int main(){
        string str1;
        int count=0,flag=0;
        int array1[100]={0};
        cout<<"输入一个字符串:\n";
        getline(cin,str1);
        //利用循环判断字符串中的每一个字符
    	for (int i = 0; i <str1.length(); i++)
    	{
    		if(str1[i] >= '0' && str1[i] <= '9')
    		{
    			array1[count] = array1[count] * 10+ int(str1[i] - '0');
    			flag = 1;
    		}
    		else if (flag==1)
    		{
    			++count;
    			flag = 0;
    		}
    	}
    	cout << "整数个数为:" << count+1 << endl;
    	cout << "整数分别为:";
    	for (int i = 0; i <= count; i++)
    		cout << array1[i] << "\t";
    }

    问题2,代码大致是这样的。

    int main(){
    	int a[10][5];
    	int i,j;
    	for(i=0;i<10;i++){
    		cout<<"第"<<i+1<<"个同学的成绩:"; 
    		for(j=0;j<5;j++){
    			cin>>a[i][j];
    		}
    	}
    	stu_avg(a);
    	course_avg(a);
    
    }
    
    int stu_avg(int a[10][5]){
    	int i,j;
    	for(i=0;i<10;i++){
    		double c;	
    		int b=0;
    		for(j=0;j<5;j++){
    			b+=a[i][j];
    			c=b/5.00;
    		}
    		cout<<"第"<<i+1<<"个同学的成绩平均分:"<<c<<endl;
    	}
    		
    }
    
    int course_avg(int a[10][5]){
    	int i,j;
    	for(j=0;j<5;j++){
    		double c;	
    		int b=0;
    		for(i=0;i<10;i++){
    			b+=a[i][j];
    			c=b/10.00;	
    		}
    		cout<<"第"<<j+1<<"门课的平均分分别为:"<<c<<endl;
    	}
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能