下面的程序是使用函數以升序對數字進行排序。它是用Visual Studio編寫的。Visual studio C編程功能defenition
我知道我在函數聲明中犯了一個錯誤,因爲我聲明int LinearSort();
高於main
而不是main
。
程序執行時沒有錯誤,但排序不會發生,因爲函數沒有被調用。
該程序保存爲C++。
任何人都可以幫助我調用該函數並通過編輯程序進行排序嗎?
主文件
#include <stdio.h>
#include <stdafx.h>
#include "sort.h"
#include <conio.h>
#include <iostream>
int LinearSort();
int main()
{
int sort[50];
int i=0;
int j=0;
int k=0;
int a = 0;
printf("Enter 10 Numbers");
for (i = 0; i < 10; i++)
{
scanf_s("%d",&sort[i]);
}
for (i = 0; i < 10; i++)
{
printf("%d\n",sort[i]);
}
return 0;
}
.C文件
#include "stdafx.h"
#include "sort.h"
#include <stdio.h>
#include <conio.h>
#include <iostream>
void LinearSort(int i, int j, int k, int a, int sort[])
{
for (j=0; j < i-1; j++)
{
for (k=0; k < i-j-1; k++)
{
if(sort[k] < sort[k+1])
{
a = sort[k];
sort[k] = sort[k+1];
sort[k+1] = a;
}
else
{
sort[j] = sort[j];
}
}
}
for (j = 0; j < i; j++)
{
printf("ascending %d\n",sort[j]);
}
_getch();
}
頭文件
#pragma once
#include <stdio.h>
extern void LinearSort(int i, int j, int k, int a, int sort[]);
'Enter 10 Numbers' ...那麼爲什麼你有50個元素的數組? –
那麼爲什麼不從'main'調用'LinearSort'函數呢? (並刪除虛假聲明'int LinearSort();') –
爲什麼你的'LinearSort'函數有這麼多參數?大部分參數應該在函數中聲明爲局部變量。特別是,看起來'j','k'和'a'參數應該改爲局部變量,參數'i'保留爲數組長度,'sort'參數作爲指向數組內容的指針。 –