void add(){ cout<<"请输入增加商品数量 \n"; int a;string q;int w;double e; cin>>a; for(int i=0;i<a;i++){ cout <<"请输入商品名字,序号,价格 \n"; cin >>q>>w>>e; g[a].goods(q,w,e); } } void sort(){ for(int i=0;i<10;i++){ g[11]; if(g[i].prices>g[i+1].prices){ g[11]=g[i]; g[i]=g[i+1]; g[i+1]=g[11]; //TODO } //TODO } }我想让sort()函数能读取add()函数中的a,如何更改
时间: 2024-03-24 21:39:37 浏览: 72
要让 `sort()` 函数能够读取 `add()` 函数中的变量 `a`,可以将 `a` 定义为全局变量,这样 `sort()` 函数就可以直接访问到它了。具体的实现方法如下所示:
```cpp
#include <iostream>
#include <string>
using namespace std;
struct Goods {
string name;
int id;
double prices;
};
Goods g[100]; // 定义一个全局的商品数组
int a; // 定义一个全局的变量 a,用于记录要增加的商品数量
void add() {
cout << "请输入增加商品数量:";
cin >> a;
for (int i = 0; i < a; i++) {
string q;
int w;
double e;
cout << "请输入商品名字,序号,价格:";
cin >> q >> w >> e;
g[i].name = q;
g[i].id = w;
g[i].prices = e;
}
}
void sort() {
for (int i = 0; i < a - 1; i++) { // 注意这里是 a-1,因为最后一个元素不需要比较
if (g[i].prices > g[i + 1].prices) {
Goods temp = g[i];
g[i] = g[i + 1];
g[i + 1] = temp;
}
}
}
int main() {
add(); // 先调用 add() 函数来增加商品
sort(); // 然后调用 sort() 函数来对商品进行排序
// 输出排序后的商品信息
for (int i = 0; i < a; i++) {
cout << g[i].name << " " << g[i].id << " " << g[i].prices << endl;
}
return 0;
}
```
在这段代码中,将变量 `a` 定义为全局变量,这样在 `add()` 函数中对它的赋值操作就可以影响到 `sort()` 函数。在 `add()` 函数中输入要增加的商品数量,并将其赋值给全局变量 `a`。在 `sort()` 函数中,通过访问全局变量 `a` 来获取要排序的商品数量,然后进行排序。最后在 `main()` 函数中对商品数组进行遍历输出,从而展示排序后的商品信息。
阅读全文