|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
void sort(int*a[],int n);
int Readscore(int*a[]);
main()
{
int*a[30],n,i;
printf("请输入一串数字:");
n=Readscore(a);
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("被排序后的数字串为:");
sort(a,n);
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
}
int Readscore(int*a[])
{
int i;
for(i=0;i<30;i++)
{
scanf("%d",*(a+i));
}
}
void sort(int*a[],int n)
{
int i,j,temp;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(*(a+i)>*(a+j))
{
temp=*(a+i); /*问题好像出现在这里,但不知道怎样修改*/
*(a+i)=*(a+j);
*(a+j)=temp;
}
}
}
}
[Error] invalid conversion from 'int*' to 'int' [-fpermissive]
编译器这样报错,不知道啥意思?还请各位大佬帮帮我呀5555555~
2 楼的程序有错误,我借用2楼的程序修改
- #include<stdio.h>
- void sort(int a[], int n);
- int Readscore(int a[]);
- int main()
- {
- int a[30], n, i;
- printf("请输入一串数字:");
- n = Readscore(a);
- printf("\n"); // 不换行,scanf()输入的数据与输出的数据都在同一行
- for (i = 0;i<n;i++)
- {
- printf("%d ", a[i]);
- }
- printf("\n"); // 换行
- sort(a, n);
- printf("被排序后的数字串为:\n");
- for (i = 0;i<n;i++)
- {
- printf("%d ", a[i]);
- }
- printf("\n"); // 换行
- }
- int Readscore(int a[])
- {
- int i;
- for (i = 0;i<30;i++)
- {
- scanf_s("%d", (a + i)); // 此处错误,应该使用地址,而不能使用元素值
- }
- return i; // 此处错误,应该将循环变量的值返回作为数组的长度
- }
- void sort(int a[], int n)
- {
- int i, j, temp;
- for (i = 0;i<n - 1;i++)
- {
- for (j = i + 1;j<n;j++)
- {
- if (*(a + i)>*(a + j))
- {
- temp = *(a + i);
- *(a + i) = *(a + j);
- *(a + j) = temp;
- }
- }
- }
- }
复制代码
|
|