我的C语言程序老是这样运行失败

在我的电脑就是有错误,我要崩溃了,在其他人电脑就可以运行,我都按照答案复制的一段程序,我打的所有程序都是这样得错误显示,请告诉我该怎么弄啊?

img

img

img

img

img

你把代码发一下

记事本打开,另存为,选择编码为utf8试试

可能的原因有很多,例如环境设置问题、编译器版本不匹配、依赖库缺失等。建议你检查以下几个方面:

  1. 确保你使用的编译器版本与程序兼容;
  2. 确保程序依赖的库已经正确安装;
  3. 检查程序中是否使用了特定于其他人的系统或环境的代码;
  4. 尝试在其他人电脑上运行程序以确认是否真的是环境问题。

这不是代码问题,就是你的编译器或者环境导致的

【相关推荐】



  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7528898
  • 你也可以参考下这篇文章:谁有何书元数理统计的视频呢,但我没有C币
  • 除此之外, 这篇博客: [ C语言 ] 还不懂指针的一定要进来,带你初始指针,简单使用指针,它没有你想的那么难。中的 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    分析:

    int main()
    {
    	float a[5];
    	float* p;
    	for (p = &a[5]; p >= &a[0];)
    	{
    		*--p = 0;
    	}
    	return 0;
    }

     

    改进:

    	for (p = &a[4]; p >= &a[0]; p--)
    	{
    		*p = 0;
    	}

     

    标准规定:
    允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与
    指向第一个元素之前的那个内存位置的指针进行比较。

     

     指针 -- 地址
     数组 -- 一组相同类型的数据
    int main()
    {
    	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
    	//arr首元素地址
    	int* p = arr;
    	int i = 0;
    	for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
    	{
    		printf("%p == %p \n", p + i,&arr[i]);
    	}
    
    
    	return 0;
    }

    分析:

     

    可见数组名和数组首元素的地址是一样的。
    结论:数组名表示的是数组首元素的地址
    那么这样写代码是可行的:
    int arr[10] = {1,2,3,4,5,6,7,8,9,0};
    int *p = arr;//p存放的是数组首元素的地址
    既然可以把数组名当成地址存放到一个指针中,我们使用指针来访问一个就成为可能。
    int main()
    {
    	int arr[] = { 1,2,3,4,5,6,7,8,9,0 };
    	int* p = arr; //指针存放数组首元素的地址
    	int sz = sizeof(arr) / sizeof(arr[0]);
    	int i = 0;
    	for (i = 0; i < sz; i++)
    	{
    		printf("&arr[%d] = %p   <====> p+%d = %p\n", i, &arr[i], i, p + i);
    	}
    	return 0;
    }

     所以 p+i 其实计算的是数组 arr 下标为i的地址

    指针变量也是变量,是变量就有地址,那指针变量的地址存放在哪里?
    这就是 二级指针
    int main()
    {
    	int a = 10;
    	int* pa = &a;
    	int** ppa = &pa; //ppa就是一个二级指针
    	**ppa = 20;
    	printf("%d\n",a);
    
    	return 0;
    }


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