oubitch 2016-10-16 09:36 采纳率: 50%
浏览 839
已采纳

C++指针问题,求大神解决!万分感激!!

#include
using namespace std;
int main()
{
cout << "共多少位捐款者(输入 0 程序结束):";
int sum;
cin >> sum;
cin.get();
if ( sum > 0 )
{
information * donor = new information[sum];
for ( int number = 0; number < sum; ++number)
{
cout << number + 1 << ")位捐款者:";
getline(cin, donor[number].name);
cout << " 捐款数额:";
while( !( cin >> (donor+number)->momey ) || (donor+number)->momey <= 0 )
{
cin.clear();
while ( cin.get() != '\n' )
{
continue;
}
cout << "请输入( > 0 )的数字:";
}
cin.get();
}
cout << "\n重要捐款者(Grand Patrons):\n";
int grand_patrons = 0;
for ( int gp = 0; gp < sum; ++gp )
{
if ( donor[gp].momey > GRAND )
{
cout << gp + 1 << ")捐款者:" << donor[gp].name << " 捐款数额:" << donor[gp].momey << endl;
++grand_patrons;
}
}
if ( grand_patrons == 0 ){cout << "无(none)。\n";}
cout << "\n其他捐款者(Patrons):\n";
if ( grand_patrons != sum )
{
for ( int gp = 0; gp < sum; ++gp )
{
if ( donor[gp].momey <= GRAND )
{
cout << gp + 1 << ")捐款者:" << donor[gp].name << " 捐款数额:" << donor[gp].momey << endl;
}
}
}
else
{
cout << "无(none)。\n";
}
cout << endl;
delete [] donor;
}
else{cout << "无(none)。\n";}
return 0;
}
** while( !( cin >> (donor+number)->momey ) || (donor+number)->momey <= 0 )** //就这里有问题,为啥是donor+number?是要移位吗?还是??

  • 写回答

1条回答 默认 最新

  • 普通网友 2016-10-16 10:40
    关注

    移位,但donor不变,你可以理解成数组下标的改变

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?