为什么输出结果不是我预想的?

img


为什么输出结果不是我预想的?但是我没找到问题出在哪里?求解惑!

if (score = 10)
修改为 score == 10

if(score == 100)
怎么上面是switch...case,下面又来if...else呢

if(score = 100)

这里出了问题,他会把100重新赋值给score,在c中只要变量的值不为0都会被认为true,所以该if会被执行,需要把代码修改为:

if(score == 100)

问题出在下面的if (score = 100),这个需要改为if (score ==100)

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你看下这篇博客吧, 应该有用👉 :什么是异常?为什么要抛出异常?
  • 除此之外, 这篇博客: 如何输入多组数据并输出每组数据的和?中的 如何输入多组数据? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    下面我分三种语言讲解这个问题

    1. C语言
    先讲解一下scanf的返回值,假设说scanf读入一个数字或者字符并成功。例如:scanf("%d, &x),那么返回值为1。类似的,两个字符成功后返回值为2,以此类推。假如读入不成功,则返回值为EOF。

    开始我曾想利用字符串或者其他形式一行一行读入,全读完之后再输出,后来发现无法办到。于是我改变思路,试图读一个数操作一次。那么怎么知道一行读完了并且输出每行的和数呢?先卖个关子。

    显而易见,如何读入多组数据输出每组的和,代码如下

    #include<stdio.h>
    int main(void)
    {
    	int x, total = 0;
    	while(scanf("%d", &x) != EOF{
    		sum += x;
    		if(getchar() == '\n')
    		{
    			printf("%d\n", total);
    			total = 0;
    		}
    	}
    	return 0;
    }
    

    2. C++
    再讲一些预备知识,cin不是一个操作符,而是一个对象,这也是我最近才知道的。所以while(cin << x)的返回值是cin的值,即也是x的值。这个操作既实现了给x赋值,又实现了判断是否到了输入末尾,相较于C语言省略了EOF,简洁。
    代码没有大的变动,故不附。

    3. Python
    我在用python写时也遇到了一个问题,这一个地方来来回回改了五回。python语言一般在input()后需要立即输入一个数,所以在实现同时输入两个数的时候需要有一个小技巧。需要将两个数作为一个字符串读入并用函数分割再转化为整型,代码如下:

    while True:  
    	try:  
        	x,y=map(int,input().split())  
            print(x + y)  
    	except:  
            break  
    
    

    其中,map第二个参数是被执行的元素,第一个参数是执行的函数,在这个代码中就是讲x和y同时整型化。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^