#include<stdio.h>
#define N 100
int main(){
char str[N];
char STR[N][2]={'\0'};
char s;
int i=0,j=0,p;
gets(str);
for(i=0;(s=str[i])!='\0';i++){
j = 0;
p = 0;
if(s>='a' && s<='z'){
while(STR[j][0]!='\0'){
if(s == STR[j][0]){
STR[j][1] = STR[j][1]+1;
p = 1;
break;
}
j++;
}
if(p==0){
STR[j][0] = s;
STR[j][1] = 1;
}
}
}
for(j=0;(s=STR[j][0])!='\0';j++){
printf("字母:%c,出现%d次\n",s,STR[j][1]);
}
}
#include<stdio.h>
#include <stdbool.h>
#define N 100
int main(){
bool jude(char str[]);
char str[N];
gets(str);
if(jude(str))
puts(str);
else
printf("错误\n");
}
bool jude(char str[]){
int i;
char s;
for(i=0;(s=str[i])!='\0';i++){
if(s>'9'||s<'0')
return false;
}
return true;
}
#include<stdio.h>
#define M 10
int main(){
int A[M][M];
int i,j,T,n=1;
T = M;
while(T>0){
for(j=M-T;j<T;j++){
A[M-T][j] = n;
n++;
}
for(i=M-T+1;i<T;i++){
A[i][T-1] = n;
n++;
}
for(j=T-2;j>=M-T;j--){
A[T-1][j] = n;
n++;
}
for(i=T-2;i>M-T;i--){
A[i][M-T] = n;
n++;
}
T--;
}
for(i=0;i<M;i++){
for(j=0;j<M;j++){
printf("%d\t",A[i][j]);
}
printf("\n");
}
}
方法一:
#include<stdio.h>
#include<math.h>
#define N 6
#define M 2
int main(){
int S[N]={1,2,3,4,5,6};
int Binary[N]={0};
int i,j,n,k;
/*Binary数组存放二进制数字*/
for(i=0;i<pow(2,N);i++){//N位的二进制数字,共有2^N个,循环2^N遍,每次 Binary[0]+1
n=0;
Binary[0]++;
for(j=0;j<N;j++){//每次加1后,整理 Binary数组,变成二进制形式
Binary[j+1] += Binary[j] / 2;
Binary[j] = Binary[j] % 2;
}
for(j=0;j<N;j++)//统计Binary数据中,值为1的个数n
if(Binary[j]==1)
n++;
if(n==M){//如果n等于M,将 Binary[j]=1的j,对应的S[j]打印输出
k=0;//判断第几位
printf("{");
for(j=0;j<N;j++){
if(Binary[j]==1){
if(k==0){printf("%d",S[j]);k=1;}//第一位前不输出逗号,规范格式
else
printf(",%d",S[j]);
}
}
printf("}、");
}
}
printf("\n");
return 0;
}
方法二:
#include<stdio.h>
#include<math.h>
#define maxsize 10
//定义结构体返回数组
struct tager{
int a[maxsize];
};
struct tager translate(int num){
int i;
struct tager x;
for(i=0;i<maxsize;i++){
x.a[i]=-1;
}
i=0;
while(num!=0){
x.a[i]=num%2;
//printf("%-3d",x.a[i]);
num /=2;
i++;
}
return x;
}
int sum_account(struct tager x){
int sum=0,n=0;
while(x.a[n]!=-1){
sum=sum+x.a[n];
n++;
}
//printf("%d",sum);
return sum;
}
int main(){
int *p,sum=0,num,number,j,i=1,s;
s=3;
int a[maxsize];
struct tager y;
printf("请输入集合元素个数:");
scanf("%d",&num);
printf("请输入限制条件:");
scanf("%d",&s);
//printf("%d\n",num);
for(j=num-1;j>=0;j--){
a[j]=i;
i++;
}
number = pow(2,num);
//printf("%d\n",number);
for(j=1;j<number;j++){
y=translate(j);
sum=sum_account(y);
//printf("%d",sum);
if(sum == s){
printf("(");
i=0;
for(i=0;i<num;i++){
if(y.a[i]==1){
printf("%-3d",a[i]);
}
}
printf(")\n");
}
}
}