以下のプログラムは、関数を使用して昇順にソートします。これはVisual Studioで書かれています。ビジュアルスタジオCプログラミング関数defenition
を上記の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[]);
「10個の数字を入力してください」...次に、50個の要素を持つ配列があるのはなぜですか? –
なぜ 'main'から' LinearSort'関数を呼び出さないのでしょうか? (そして、偽宣言 'int LinearSort();'も削除してください。) –
なぜあなたの 'LinearSort'関数は非常に多くのパラメータを持っていますか?ほとんどのパラメータは、関数内のローカル変数として宣言する必要があります。特に 'j'、' k'、 'a'パラメータをローカル変数に変更し、' i'パラメータを配列の長さにし、 'sort'パラメータを配列の内容へのポインタとして残すように見えます。 –