永发信息网

求助一些C++题目~~!! 急,谢谢~~~

答案:4  悬赏:80  手机版
解决时间 2021-07-30 14:40
  • 提问者网友:人傍凄凉立暮秋
  • 2021-07-30 04:54

1.手动输入一些数据有正有负,输出最小值,和第二小的,只用一个FOR.

2.有N个人输入姓名,年龄,学号.录入完毕以后.可以输入姓名或学号,年龄进行查询学生的详细信息.

3.猜数字游戏,随即给出一个数字.然后用户输入数字提示大了,小了,正确询问是否再来.

最佳答案
  • 五星知识达人网友:过活
  • 2021-07-30 05:15

1.手动输入一些数据有正有负,输出最小值,和第二小的,只用一个FOR.

#include <iostream>
//飘逝的海天 QQ: 272399954
using namespace std;


void main()
{
unsigned int datalen;
int num_in, fst_min, sec_min;
cout << "请输入你想要测试的数据个数: ";
cin >> datalen;
cout << endl;
for(unsigned int i = 0; i <= datalen - 1; i++)
{
cout << "请输入第" << i + 1 << "个数: ";
cin >> num_in;
cout << endl;
if(!i)
{
fst_min = num_in;
sec_min = num_in;
}
else
{
if(num_in < fst_min)
{
sec_min = fst_min;
fst_min = num_in;
}
}
}
cout << "最小数: " << fst_min << endl;
cout << "次小数: " << sec_min << endl;


system("pause");
}



2.有N个人输入姓名,年龄,学号.录入完毕以后.可以输入姓名或学号,年龄进行查询学生的详细信息.

#include <iostream>
#include <string>
//飘逝的海天 QQ: 272399954
using namespace std;


void main()
{
struct stu_info
{
string name;//学生姓名
unsigned int age;//年龄
unsigned int stu_ID;//学号
};
string testdata;
unsigned int rec_stu;
cout << "请输入需要记录几个学生的数据: ";
cin >> rec_stu;
cout << endl;
stu_info *stu_data = new stu_info[rec_stu];
for(unsigned int i = 0; i <= rec_stu - 1; i++)
{
cout << "请输入第" << i + 1 << "个学生的姓名: ";
cin >> (stu_data + i)->name;
cout << "请输入第" << i + 1 << "个学生的年龄: ";
cin >> (stu_data + i)->age;
cout << "请输入第" << i + 1 << "个学生的学号: ";
cin >> (stu_data + i)->stu_ID;
}
cout << endl;
cout << endl;
cout << "请输入要查询的数据: ";
cin >> testdata;
for(unsigned int i = 0; i <= rec_stu - 1; i++)
{
if(testdata == (stu_data + i)->name || atoi(testdata.c_str()) ==(stu_data + i)->age || atoi


(testdata.c_str()) == (stu_data + i)->stu_ID)
{
cout << "您查询的学生是" << i + 1 << "号" << endl;
cout << "姓名: " << (stu_data + i)->name << endl;
cout << "年龄: " << (stu_data + i)->age << endl;
cout << "学号: " << (stu_data + i)->stu_ID << endl;
}
}


system("pause");
}



3.猜数字游戏,随即给出一个数字.然后用户输入数字提示大了,小了,正确询问是否再来.

#include <iostream>
#include <ctime>
//飘逝的海天 QQ: 272399954
using namespace std;


void main()
{
srand((unsigned)time(NULL));//初始化随机环境
int rand_num = rand() % 100 + 1;//100以内的正整数
int guess;
for( ; ;)
{
cout << "请输入您的数字: ";
cin >> guess;
if (guess > rand_num)
cout << "猜的有点大哦" << endl;
else if(guess < rand_num)
cout << "猜的有点小哦" << endl;
else
{
cout << "恭喜, 猜中了" << endl;
break;
}
}


system("pause");
}

全部回答
  • 1楼网友:忘川信使
  • 2021-07-30 08:53

1. void getLeast(int *arr,int n) { int least , secondLeast ; least = secondLeast = arr[0]; int i ; for(i = 1 ; i < n ; ++i) { if(arr[i] < least) { secondLeast = least ; least = arr[i] ; } }

2.

#include <string.h>

#define N 5 struct Student { char name[255] ; int age ; char sno[10] ; }; Student stu[N] ; int i ; cout << "输入学生基本信息:" << endl ; for(i = 0 ; i < N ; ++i) { cin >> stu[i].name >> stu[i].age >> stu[i].sno ; } while(1) { cout << "选择您需要的查询方式:" << endl << "1 姓名" << endl << "2 年龄" << endl << "3 学号" << endl << "4 退出" << endl ; int sel ; cin >> sel ; switch(sel) { case 1: { cout << "输入学生姓名:" ; char name[255] ; cin >> name ; bool find = false ; for(int i = 0 ; i < N ; ++i) { if(strcmp(name,stu[i].name) == 0) { find = true ; cout << "您查询的学生信息如下:" << endl; cout << stu[i].name << '\t' << stu[i].age << '\t' << stu[i].sno << endl; } } if(!find) { cout << "未找到匹配的学生信息" << endl ; } break ; } case 2: { cout << "输入学生年龄:" ; int age ; cin >> age ; bool find = false ; for(int i = 0 ; i < N ; ++i) { if(age == stu[i].age) { find = true ; cout << "您查询的学生信息如下:" << endl; cout << stu[i].name << '\t' << stu[i].age << '\t' << stu[i].sno << endl; } } if(!find) { cout << "未找到匹配的学生信息" << endl ; } break ; } case 3: {cout << "输入学生学号:" ; char sno[10] ; cin >> sno ; bool find = false ; for(int i = 0 ; i < N ; ++i) { if(strcmp(sno,stu[i].sno) == 0) { find = true ; cout << "您查询的学生信息如下:" << endl; cout << stu[i].name << '\t' << stu[i].age << '\t' << stu[i].sno << endl; } } if(!find) { cout << "未找到匹配的学生信息" << endl ; } break ; } case 4: return 0 ; } }

3.

#include <time.h>

#include <string.h>

#include <stdlib.h>

cout << "欢迎来到猜数字游戏:" << endl ; while(1) { srand(time(NULL)) ; int num = rand() ; cout << "请输入您的答案(数字):" ; int input ; while(cin >> input) { if(input == num) break ; cout << "答案错误,请重新输入:" ; } cout << "恭喜您,答对了!" << endl << "还要再来吗?(y/n)" ; char sel ; cin >> sel ; if(_tolower(sel) == 'n') break ; }

  • 2楼网友:杯酒困英雄
  • 2021-07-30 07:43

问题1

怎么输入数据就不说了。将输入的数据保存在数组a[n]中。

定义最小值max1和第二小值max2

if(a[0]<a[1]){

max1=a[0];

max2=a[1];

}else{

max1=a[1];

max2=a[0];

}

for(int i = 2;i < n;i++){

if(max1 > a[i]){

max2 = max1;

max1 = a[i];

}else if(max2 > a[i]){

max2 = a[i];

}

}

问题2

使用链表存储数据。

一个数据元定义包括姓名,年龄,学号信息。

以姓名查询方法参考如下:

输入的数据存储在链表l中。

p = l->next;

while(p != NULL){

if(p->name == input.name){

q = p;

printf("%s,%s,%d", q->name,q->num,q->age);

p= p->next;

}

}

问题3

随机生成一个数字

int r = rand(); 用户输入input

flag == true

while(flag){

if(input > r){

提示大了

}

if(input < r){

提示小了

}

if(input == r){

提示猜中了

}

询问是否再来

if(不继续){

flag = false;

}

}

上面皆为伪码。

  • 3楼网友:三千妖杀
  • 2021-07-30 06:27
第1题 #include <iostream.h> void main() { int max,min,n,a[100]; cout<<"数字个数:"; cin>>n; cin>>a[0]; max=min=a[0]; for(int i=1;i<n;++i) { cin>>a[i]; max=a[i]>max?a[i]:max; min=a[i]<min?a[i]:min; } cout<<"最大值:"<<max<<",最小值:"<<min<<endl; } 第2题 #include <iostream.h> #include <string.h> #define N 5 //N为人数 修改数字可修改人数 struct stu { char name[10]; int age; char sno[10]; }; void findbyname(stu s[],char *name) { for (int i=0;i<N;++i) { if (!strcmp(s[i].name,name)) { cout<<"姓名:"<<s[i].name<<" 年龄:"<<s[i].age<<" 学号:"<<s[i].sno<<endl; } } } void findbyage(stu s[],int age) { for (int i=0;i<N;++i) { if (s[i].age==age) { cout<<"姓名:"<<s[i].name<<" 年龄:"<<s[i].age<<" 学号:"<<s[i].sno<<endl; } } } void findbysno(stu s[],char *sno) { for (int i=0;i<N;++i) { if (!strcmp(s[i].sno,sno)) { cout<<"姓名:"<<s[i].name<<" 年龄:"<<s[i].age<<" 学号:"<<s[i].sno<<endl; } } } void main() { stu s[N]; for (int i=0;i<N;++i) { cout<<"第"<<i+1<<"个学生"<<endl; cout<<"姓名:"; cin>>s[i].name; cout<<"年龄:"; cin>>s[i].age; cout<<"学号:"; cin>>s[i].sno; } char name[10],sno[10]; int age; cout<<"要查找的姓名:"; cin>>name; findbyname(s,name); cout<<"要查找的年龄:"; cin>>age; findbyage(s,age); cout<<"要查找的学号:"; cin>>sno; findbysno(s,sno); } 第3题 #include <iostream.h> #include <time.h> #include <stdlib.h> void main() { srand((int)time(0)); char s; do { int num=rand()%10; cout<<"请猜数(0-9):"; int tnum; cin>>tnum; if (tnum==num) { cout<<"正确"<<endl; } else { cout<<(tnum>num?"大了":"小了")<<endl; } cout<<"是否再来?输入y继续"; cin>>s; } while(s=='y'); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯