C++的几个程序,求帮做...

2025-05-07 20:22:52
推荐回答(4个)
回答1:

【第一题】
请输入人数和间隔人数:
10,3
第3 个出 1 2 4 5 6 7 8 9 10
第6 个出 1 2 4 5 7 8 9 10
第9 个出 1 2 4 5 7 8 10
第2 个出 1 4 5 7 8 10
第7 个出 1 4 5 8 10
第1 个出 4 5 8 10
第8 个出 4 5 10
第5 个出 4 10
第10 个出 4
最后剩下的编号:4

源代码

#include "stdio.h"
#include "conio.h"
void printArray(int a[],int n)
{
int i;
for(i=0;i {
printf("%2d ",a[i]);
}
printf("\n");
}
main()
{
int student[50];
int n=0,count=0,number=0,i,j;
printf("请输入人数和间隔人数:\n");
scanf("%d,%d",&number,&n);
for(i=1;i<=50;i++)
{
student[i-1]=i;
}
i=0;
while(number>1)
{
count=1;
while(count<=n-1)
{
i++;
count++;
if(i>=number)
{
i=i%number;
}
}
printf("第%d 个出列 ",student[i]);
for( j=i+1;j {
student[j-1]=student[j];
}
number--;
printArray(student,number);
}
printf("最后剩下的编号:%d",student[0]);
getch();
}

【第二题】
效果:
数组处理前:
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
数组旋转后
1 7 13 19 25
2 8 14 20 26
3 9 15 21 27
4 10 16 22 28
5 11 17 23 29
6 12 18 24 30

源代码:

#include "stdio.h"
#include "conio.h"
void RotateArray(int b[6][5],int a[5][6],int m,int n)
{
for(int i=0;i {
for(int j=0;j {
b[i][j]=a[j][i];
}
}
}
main()
{
int a[5][6]={0};
int b[6][5]={0};
int count=0;
printf("数组处理前:\n");
for(int i=0;i<5;i++)
{
for(int j=0;j<6;j++)
{
a[i][j]=++count;
printf("%3d",a[i][j]);
}
printf("\n");
}
RotateArray(b,a,6,5);
printf("\n数组旋转后\n");
for(int i=0;i<6;i++)
{
for(int j=0;j<5;j++)
{
printf("%3d",b[i][j]);
}
printf("\n");
}
getch();
}

【第三题】
效果:
请输入一个整数 x:
71
是素数!

源代码:
#include "stdio.h"
#include "conio.h"
int isShuShu(int n)
{
int i;
for(i=2;i<=n/2;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
main()
{
int i;
int x;
printf("请输入一个整数 x:\n");
scanf("%d",&x);
if(isShuShu(x))
{
printf("是素数!");
}
else
{
printf("不是素数!");
}
getch();
}

【第四题】
效果:
11 13 17 31 37 71 73 79 97
源代码:
#include "stdio.h"
#include "conio.h"
int isShuShu(int n)
{
int i;
for(i=2;i<=n/2;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
main()
{
int i;
for(i=10;i<=100;i++)
{
if(isShuShu(i)&&isShuShu((i%10)*10+i/10))
{
printf("%3d ",i);
}
}
getch();
}

【第五题】

效果:
请输入5个同学的姓名:
Tom
Jack
Stive
Hof
Bob
排序后
Bob
Hof
Stive
Jack
Tom
最小的那个姓氏是:Bob

源代码:
#include "stdio.h"
#include "conio.h"
#include "string.h"

void bobbleSort(char a[5][20])
{
char string [20];
for(int i=0;i<4;i++)
{
for(int j=0;j<4-i;j++)
{
if(strcmp(a[j],a[j+1]))
{
strcpy(string,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],string);
}
}
}
}
void printArray(char a[5][20],int m)
{
for(int i=0;i {
printf("%s\n",a[i]);
}
}
main()
{
char str[5][20];
printf("请输入5个同学的姓名:\n");
for(int i=0;i<5;i++)
{
gets(str[i]);
}
bobbleSort(str);
printf("排序后\n");
printArray(str,5);
printf("最小的那个姓氏是:%s\n",str[0]);
getch();
}

回答2:

我只能告诉你思路.
1. 用双向链表存储数据1-10,这样就可以首位相连了.从第一个数字开始,数数,数到3的,从链表中移除该节点.判断当前节点的后续节点是不是自身,如果是表示双向链表只有一个节点了.显示该节点的数值.
2.
int i =0 ;
int j=0;
for(i=0;i<6;i++){
for( j = i; j<6; j++){
//a[i][j] 和a[j][i] 数值相互交换
}
}

3.判断素数的方法
int i=0;
for( i=2; i if( num%i == 0 ){// 余数是0说明可以被i整除,说明不是素数
}
}

4.
int i=0;
for(i=10;i<99;i++){
A.先判断这个数字是素数.
B. 数字位置对换,得到新数.
C.如果新数也是素素则打印i;
}
数字位置对换方法:
int newN = i/10 + (i%10)*10;
5. 可以用教科书上的冒泡排序算法.

回答3:

我要是帮你写了。真真的就是在害你。都太简单了啊。。。。C语言100例里面就有,而且非常详细。

回答4:

这个还是自己做比较好,主要是有思路就好。
这些都是基本的,主要是找规律,找到规律就简单了。
像这个矩阵,主要就是对数组的处理,怎么样for。。。

第一个,正好我有答案:(我的是17人的)
int ran[17] = {11,2,3,...,17};
int number =1;
int j=17;
int m=0;
for(int i=0; ; i++)
{
if(ran[i] != 0)
{
if(number % 3 == 0)
{
ran[i] = 0;
j--;
number++;
}
if( (i+1) % 17 == 0 )
{
i = -1;
}
for(int k=0;k<17;k++)
{
cout<}
}
}