c语言 旅馆里有一百个房间,从1到100编了号
#include#include//初始化要用这个头文件using namespace std;int main(){int i, j;bool f[102];//表示房间状态,这里使用了bool型memset(f, 0, sizeof(f));//初始化房间f,0为关,1为开for (j = 1; j <= 100; ++j){for (i = 1; i <= 100; ++i){if (i % j == 0) //判断第i号房间是否为服务员j的倍数{if (f[i] == 0) //做相反操作f[i] = 1;else f[i] = 0;}}}for (i = 1; i <= 100; ++i)if (f[i] == 1) //把所有打开的房间输出printf("%d ",i); //注意空格 别粘在一起了return 0;}
#include #include /*第一题*/#define N 26void PrintChrArr(){int i,j,k,x;for( i=0; i 0; x-- )printf("%c",('A'+x-1)); printf("
");}} int main(int argc, char *argv[]) {PrintChrArr();system("pause");return 0;}
#include #include #define N 256/* 第16题 */void reverse(char *arr,int num){ char tem; int j=0; while( j < num/2 ) { tem=arr[j]; arr[j]=arr[num-j-1]; arr[num-j-1]=tem; j++; }}int main(int argc, char *argv[]) {char str[N];int i;scanf("%s",str);printf("原序:%s
",str);reverse(str,strlen(str));printf("逆序:%s
",str);system("pause");return 0;}
第13题:
#include #include #define N 33 /* 如果你的计算机是32位就将N定位 33,如果你的计算机是64位的就将N定为 65 *///针对32位的整数void IntToBinary(int num,char* str){int i; for( i=0; i < N-1 ; i++ )str[i]=(num&(1<<(31-i)))?'1':'0';str[i]='\0'; }int main(int argc, char *argv[]) {char str[N];int num,i;scanf("%d",&num);IntToBinary(num,str);printf("%d的二进制为:%s",num,str);system("pause"); return 0;}
if (a[j]) printf("%d ", j);
改成 if(a[k]) printf("%d",k);
此时你的j已经是一个定值。。。a[j]一定为0 ,不管k怎么变,都不会影响你的判断。。。
c++代码:开关门
【题目描述】
宾馆里有n(2≤n≤1000)n(2≤n≤1000)个房间,从1∼n1∼n编了号。第一个服务员把所有的房间门都打开了,第二个服务员把所有编号是22的倍数的房间“相反处理”,第三个服务员把所有编号是33的倍数的房间作“相反处理”…,以后每个服务员都是如此。当第nn个服务员来过后,哪几扇门是打开的。(所谓“相反处理”是:原来开着的门关上,原来关上的门打开。)
【输入】
房间数nn。
【输出】
一行,由小到大的打开门的房间序号,各序号之间用一个空格隔开。
【输入样例】
100
【输出样例】
1 4 9 16 25 36 49 64 81 100
【代码样例】
#include<bits/stdc++.h>
using namespace std;
int a[2000],i,j,n,first=1;
int main(){
cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(j%i==0) a[j]=!a[j];
for(i=1;i<=n;i++)
if(a[i]==1){
if(first==1) first=0;//开始不用输出空格
else cout<<" ";
cout<<i;//输出打开的门
}
return 0;
}
网页链接
无高先瑞: 1 4 9 16 25 36 49 64 81 100 #include void main(){ int i,j; int a[101]={1}; for (i=1;i<101;i++){ for (j=i;j<101;j+=i){ if (a[j]) a[j]=0; else a[j]=1; } } for (i=1;i<101;i++) if (a[i]) printf("%d\n",i); }
汾西县18277073093: 百人关百灯问题 - ?
无高先瑞: #include<stdio.h> void main() { int i,j=0,k=0; int a[100]; for(i=0;i<100;i++) a[i]=-1;//将数组全部赋值为-1for(i=1;i<=100;i++)for(j=1;j<=100;j++) if(i%j==0) a[i-1]=a[i-1]*(-1);for (i=0;i<100;i++) if(a[i]!=-1) k++; printf("%d\n",k); } 其实还可以写的更好点,你自己想想怎么写吧
汾西县18277073093: free pascal的基本语句,赋值?
无高先瑞: 赋值的操作: a : = b; 变量+冒号+等号+代数式; 判断语句: if (代数式 逻辑运算符 代数式) then begin end; 多重判断语句 在end语句后面加上else语句,用来判断上一条判断语句所判断的情况之外的情况. 例如,编写一个根据输入的分...
汾西县18277073093: c语言实现顺序表建立,插入,删除功能,要求变量为结构 - ?
无高先瑞: #include <stdio.h>#include <malloc.h>#include <stdlib.h> typedef struct Node { int id; int time; int sex; int jb; int fangjian; struct Node *next; }SLNode; void ListInitiate(SLNode * * head) { if((*head = (SLNode * )malloc(sizeof(SLNode))) == NULL) exit(1)...
汾西县18277073093: pascal旅馆的房间 - ?
无高先瑞: 楼上的答案绝对是错误的,则其程序也有错 正确的答案是1,4,9,16,25,36,49,64,81,100 即各完全平方数 这可以用数学方法证明 每扇门都有标号,标号的因子个数决定了这扇门开或关 普通的数至少可以被1和它本身整除,这样门都至少被改变2次 ...
汾西县18277073093: c语言指针不同表达 - >是什么意思 - ?
无高先瑞: c语言指针不同表达->是什么意酥刚刖褪且桓鍪莸牡刂罚热纾阂桓龇考淅锓抛攀荩刚胂嗟庇谡飧龇考涞
汾西县18277073093: C语言编程题..定义一个用于描述旅馆的结构体,包括以下成员:名称、地址、级别、房价、房间数. - ?
无高先瑞: struct Hotel { char name[20]; char address[200]; int level; float price_of_house; int num_of_house; }; 楼上给的结构体可以,但是name和address要申请动态空间才可以用,这里你直接申请堆栈空间,设置成数组即可
汾西县18277073093: C语言问题 - ?
无高先瑞: 在程序提示你选饭店的时候输入1~5之间的数就可以运行.头文件与.C文件放一起. while((status=scanf("%d",&code))!=1|| (code<1||code>5)) scanf("%*s"); 从他的执行效果来说 首先进while,开始计算条件是否成立 计算第一个条件status=...
汾西县18277073093: 用c++编写一个程序:有 100 个囚犯分别关在 100 间牢房里.牢房外有一个空荡荡的房间,房间里有一个由开 - ?
无高先瑞: #include <iostream> #include <ctime> using namespace std;int getNumber() { return (rand() % 100) ; } int main() { int day = 0; int toggle = 0;//0表示灯关闭,1表示灯打开 int all[100] = { 0 };//100个犯人的状态,0表示没来过,1表示来过 int count = 0...
汾西县18277073093: C++ 求每个房间面积,然后全部相加 得出整个房子的面积和. - ?
无高先瑞: C++程序:#include using namespace std; int main() { int number; int sum=0; int width; int length; cout cin>>number; for(int i=0;i { cout cin>>length; cout cout cin>>width; cout sum+=length*width; } cout //system("pause"); }