c语言数组问题求解答

img

img


c语言问题
同样的代码横着出来为1
竖着为5.5
求各位友友解答一下

输入里面的逗号去除即可,因为scanf读取数据时默认分隔符为空白字符(空格,回车,制表符),所以如果输入中使用了逗号,需要在scanf中也使用逗号来匹配数据,例如,scanf("%f,")这种形式,所以在输入时去除逗号即可。

测试如下:

参考链接:


https://zhidao.baidu.com/question/1437138832219003419.html

https://blog.csdn.net/weixin_39920629/article/details/116988025

https://www.cnblogs.com/ydqblogs/p/13823910.html


#include <stdio.h>

int main(void){
    
    float score[10],sum=0,x,ever;
    int i;
    for(i=0;i<10;i++){
        // https://baike.baidu.com/item/scanf/10773316?fr=aladdin+
        // https://zhidao.baidu.com/question/1437138832219003419.html 
        // https://blog.csdn.net/weixin_39920629/article/details/116988025
        // https://www.cnblogs.com/ydqblogs/p/13823910.html
        scanf("%f",&x); // 输入的数据之间以回车间隔或空格,制表符间隔都可以 
        score[i]=x;
        
    }
    
    for(i=0;i<10;i++){
        sum=sum+score[i];
        //printf("score[%d]=%f,sum=%f\n",i,score[i],sum);
    }
    
    ever=sum/10.0;
    printf("平均分为%.1f",ever);
    
    return 0;
} 

img

将x定义为int型,scanf里输入修改为%d作为输入试一下!

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7746890
  • 这篇博客也不错, 你可以看下重启c语言-求该字符串中最长连续数字序列出现的起始位置及其长度
  • 同时,你还可以查看手册:c语言-内存模型与数据竞争 中的内容
  • 除此之外, 这篇博客: C语言 数据类型及数据存储中的 1.5 有符号数和无符号数的计算 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 计算原理:二进制计算,再根据输出要求输出数据

    #include<stdio.h>
    #include<string.h>
    
    int main()
    {
    	char c[1000];
    	unsigned char ch[1000];
    
    	int i;
    	for (i = 0; i < 1000; i++)
    	{
    		c[i] = -1 - i;
    		ch[i] = -1 - i;
    	}
    	
    	//ch[0] == -1;
    	//10000000000000000000000000000001	-1原码
    	//11111111111111111111111111111110	-1反码
    	//11111111111111111111111111111111	-1补码
    	//截断:11111111
    	//整型提升:00000000000000000000000011111111	ch[0]补码
    
    	//ch[1] == -2
    	//10000000000000000000000000000010	-2原码
    	//11111111111111111111111111111101	-2反码
    	//11111111111111111111111111111110	-2补码
    	//截断:11111110
    	//整型提升:00000000000000000000000011111110	ch[1]补码
    
    	//ch[255] == -256
    	//10000000000000000000000100000000	-256原码
    	//11111111111111111111111011111111	-256反码
    	//11111111111111111111111100000000	-256补码
    	//截断:00000000
    	//整型提升:00000000000000000000000000000000	ch[255]补码为 0 ,对应'\0',字符串结束
    
    	printf("%d\n", strlen(c));		//判断'\0'之前的字符串长度,输出结果: 255
    	printf("%d\n", strlen(ch));		//判断'\0'之前的字符串长度,输出结果: 255
    							//char 和 unsigned char 的判断方法都是根据二进制计算结果来判断
    	return 0;
    }
  • 您还可以看一下 钟洪发老师的鸿蒙设备开发之C知识点全面梳理课程中的 C语言中常用数据类型小节, 巩固相关知识点