error LNK1561: 必须定义入口点 求大神解答
#include<iostream>usingstd::cout;usingstd::cin;usingstd::endl;template<typenameM>Mbub...
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
template<typename M>
M bubble(M a[],int size){ //冒泡排序算法模板
int pass, i;M temp;
for (pass = 1; pass < size; pass++){
for (i = 0; i < size - pass;i++)
if (a[i]>a[i + 1]){
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
for (i = 0; i < size; i++){
cout << a[i] << ",";
cout << endl;
}
}
}
template<typename M>
M main(){
int size, j;M array[];
cout << "设置排序数组最大值:" << endl;
cin >> size;
cout <<"排序数组最大值: "<<size<<" 设置排序数组:" << endl;
for (j = 0; j < size; j++){ //输入排序数组
M a;
cin >> a;
array[j] = a;
}
for (int k = 0; array[k] != '\0';k++){ //输出排序数组
cout << "排序数组是:";
cout << array[k];
cout << endl;
}
//int len = sizeof(array);
bubble(array,size); //调用算法
system("pause");
} 展开
using std::cout;
using std::cin;
using std::endl;
template<typename M>
M bubble(M a[],int size){ //冒泡排序算法模板
int pass, i;M temp;
for (pass = 1; pass < size; pass++){
for (i = 0; i < size - pass;i++)
if (a[i]>a[i + 1]){
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
for (i = 0; i < size; i++){
cout << a[i] << ",";
cout << endl;
}
}
}
template<typename M>
M main(){
int size, j;M array[];
cout << "设置排序数组最大值:" << endl;
cin >> size;
cout <<"排序数组最大值: "<<size<<" 设置排序数组:" << endl;
for (j = 0; j < size; j++){ //输入排序数组
M a;
cin >> a;
array[j] = a;
}
for (int k = 0; array[k] != '\0';k++){ //输出排序数组
cout << "排序数组是:";
cout << array[k];
cout << endl;
}
//int len = sizeof(array);
bubble(array,size); //调用算法
system("pause");
} 展开
展开全部
main前面改成int 后面加return 0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不明白为什么要对main函数使用模板,main函数也会被调用吗?
更多追问追答
追问
因为我要在main函数里用模板啊,怎么修改好?
追答
我想反问你一下,模板的意义何在?模板是让用来调用的,main只能是操作系统调用的,
你把他弄成模板有何意义?这是其一
退出来说,就当你是操作系统, 你在main里面使用模板调用模板函数的时候还使用模板?
不实例化,如何调用模板?这是其二
建议弄清楚模板的意义和使用范围,本例中main不要使用模板,你调用不了main
此程序修改的话,只能是把main中的模板去掉,然后调用第一个模板函数的时候,入参
必须都实例化
给你改了个版本,你可以参考下
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
template<typename M>
void bubble(M a[],int size){ //既然没有返回值,直接void
int pass, i;M temp;
for (pass = 1; pass < size; pass++){
for (i = 0; i < size - pass;i++)
if (a[i]>a[i + 1]){
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
for (i = 0; i < size; i++){
cout << a[i] << ",";
cout << endl;
}
}
}
void main(){
int size, j;int array[100];
cout << "设置排序数组最大值:" << endl;
cin >> size;
cout <<"排序数组最大值: "<<size<<" 设置排序数组:" << endl;
for (j = 0; j < size; j++){ //输入排序数组
int a;
cin >> a;
array[j] = a;
}
for (int k = 0; array[k] != '\0';k++){ //输出排序数组
cout << "排序数组是:";
cout << array[k];
cout << endl;
}
//int len = sizeof(array);
bubble(array,size); //调用算法
system("pause");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询