C语言-实验2

这篇博客介绍了如何使用C语言根据百分制成绩输出对应的A至E等级,分别通过if语句和switch语句实现。同时,针对输入错误(如负数或超过100的分数)的情况,提供了修改后的程序以确保正确处理。此外,还探讨了如何对输入的四个整数进行升序和降序排序的问题。
摘要由CSDN通过智能技术生成

逻辑运算与条件语句


一、有一函数:y=2*|x|+1,y=2*|x|+2,y=2*|x|+3.
?用scanf函数输入x的值,求y值。
?运行程序,输入x的值(分别为x<1、1~10、x≥10这3种情况),检查输出的y值是否正确。

#include <stdio.h>
#include <math.h>

int main(void)
{
   
    int x,y;
	printf("input x:\n");
	scanf("%d",&x);
	if(x < 1)
	{
   
	   y = 2*abs(x)+1;
	}
	else if((x > 1) && (x < 10))
	{
   
	   y = 2*abs(x)+2;
	}
	else if((x > 10) || (x == 10))
	{
   
	   y = 2*abs(x)+3;
	}
	printf("y = %d\n",y);
	return 0;
}

二、给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,8189分为B,7079分为C,60~69分为D,60分以下为E。
事先编好程序,要求分别用if语句和switch语句来实现。运行程序,并检查结果是否正确。
?再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级,修改程序,使之能正确处理任何数据,当输入数据大于100和小于0时,通知用户“输入数据错”,程序结束。

If语句

#include <stdio.h>

int main(void)
武汉理工java实验2,大家课学习参考package sun; import java.awt.*; import javax.swing.*; import javax.swing.border.EmptyBorder; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.util.StringTokenizer; //导入 public class Test1 extends JFrame {//继承JFrame private final JPanel contentPane;//私有类,其他类不能享用 private final JTextPane numberField;//容器类 private final JTextField sumyun;//创建对象 private final JTextField aveField; public static void main(final String[] args) {//主函数 EventQueue.invokeLater(new Runnable() {//使事件派发线程上的可运行对象排队。当可运行对象排在事件派发队列的队首时,就调用其run方法 public void run() { try { final Test1 frame = new Test1();//捕获异常 frame.setVisible(true); } catch (final Exception e) { e.printStackTrace();//在命令行打印异常信息在程序中错的位置及原因 } } }); } public Test1() { super("第二次实验:和与平均"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//使用 System exit 方法退应用程序。仅在应用程序中使用。 setBounds(100, 100, 400, 300);//setBounds(x,y,width,height):x:组件在容器X轴上的起点;y:组件在容器Y轴上的起点;width:组件的长度;height:组件的高度。 contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(10, 10, 10, 10)); setContentPane(contentPane);//给窗体加个panel作为内容面板 contentPane.setLayout(null); numberField = new JTextPane(); numberField.addKeyListener(new KeyAdapter() {//键盘事件监听者 public void keyTyped(final KeyEvent e) { double sum = 0,avg = 0; switch(e.getKeyChar()) { case KeyEvent.VK_SPACE: //分隔符为空格 case KeyEvent.VK_COMMA: //分隔符为英文逗号 case KeyEvent.VK_ENTER: //分隔符为回车 final String str=numberField.getText(); final StringTokenizer analyze = new StringTokenizer(str," ,\n");//StringTokenizer 用来分割字符串,用,/n分割 final int allnum=analyze.countTokens(); for(int i =0;i<allnum;i++) { final String temp = analyze.nextToken(); //nextToken() 用于返回下一个匹配的字段 sum = sum+Double.parseDouble(temp); } if(allnum>0) { avg = sum/allnum; }else { avg = 0; } sumyun.setText(Double.toString(sum)); aveField.setText(Double.toString(avg)); } } }); /*numberField.setBounds(15, 15, 350, 100); contentPane.add(numberField); final JLabel label = new JLabel("和 "); label.setBounds(60, 140, 70, 20); contentPane.add(label); final JLabel label_1 = new JLabel("平均"); label_1.setBounds(60, 180, 70, 20); contentPane.add(label_1);*/ sumyun = new JTextField(); sumyun.setBounds(130, 140, 230, 25); contentPane.add(sumyun); sumyun.setColumns(10); aveField = new JTextField(); aveField.setBounds(130, 180, 230, 25); contentPane.add(aveField); aveField.setColumns(10); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值