问题遇到的现象和发生背景:用VS2019编写C语言程序(冒泡排序),在循环中比较数组中的元素大小时遇到这个问题
以下是问题的具体截图和所有代码:
以下是完整程序:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
int bubble_sort(int arr, int sz)
{
int i = 0;
int j = 0;
int tmp = 0;
for (i = 0; i < sz-1; i++)
{
for (j = 0; j < sz - 1 - i; j++)
{
if (arr[j] < arr[j + 1])
{
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
return 0;
}
int main()
{
int n = 0;
int arr[] = { 2,4,6,7,3,5,8,10,9,1 };
int sz = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr, sz);
for (n = 0; n < sz; n++)
{
printf("%d\n", arr[n]);
}
return 0;
}
运行结果及报错内容 :无法运行,报错内容为:表达式必须包含指向对象的指针类型,但它具有类型"int"
个人在论坛上找了相关博客,好像是指针方面的问题,在变量 j 的定义中加入星号 * 可以让下面的红色波浪线消失,但是程序运行结果有误,调试监控后出现以下问题:
诚恳向各位请教,感谢!
第一次CSDN上提问,如果有什么阐述不清楚的地方,望谅解,也欢迎各位对我的提问提出建议。