📄 新建 文本文档 (2).txt
字号:
/*
author@ huping
time@ 11/10/2007 14:46
有length个程序放在maxvalue容量的磁带上,设计存储方案使存储更多的程序。
*/
#include "stdio.h"
#include "stdlib.h"
int compar (const void *a , const void *b) //using for qsort compare
{
int *aa=(int * ) a,*bb = (int * )b;
if( * aa >* bb)return 1;
if( * aa == * bb) return 0;
if( * aa < *bb) return -1;
}
int main(){
int length, maxvalue,i;
int localmax=0,j=0;
int *all;
scanf("%d %d" ,&length ,&maxvalue);
all=(int *)malloc(sizeof(int)*length); //init the array
for(i=0;i<length;i++){
scanf("%d", &all[i]);
}
qsort(all,length,sizeof(int),compar); //sort it
for(i=0;i<length;i++){
j++;
if(localmax+=all[i]>maxvalue){
j--;
break;
}
}
printf("max program is %d",j);
free(all);
return 0;
}
*******************************************************
*******************************************************
#include "stdio.h"
int nmal, kget,*all;
int getnext(int *,int,int);
int main(){
int i,count=0;
scanf("%d %d" ,&nmal ,&kget);
all=(int *)malloc(sizeof(int)*(kget+1)); //init the array
for(i=0;i<(kget+1);i++){
scanf("%d", &all[i]);
}
i=0;
while(i<(kget)){
int temp=getnext(all,i,nmal);
//printf("%d", temp);
if(i==temp){
printf("%s", "NO Solution");
return 0;
}
else{
i=temp;
}
count++;
}
printf("times to get oil is %d",count-1);
printf("\n");
free(all);
return 0;
}
int getnext(int *all,int i,int max){
int j, localmax=0;
for(j=i;j<kget;j++){
if((localmax+=all[j+1])>max)
return j;
}
return j;
}
********************************************
********************************************
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int *all;
int compar (const void *a , const void *b) //using for qsort compare
{
int *aa=(int * ) a,*bb = (int * )b;
if( * aa >* bb)return 1;
if( * aa == * bb) return 0;
if( * aa < *bb) return -1;
}
int main(){
int*temp;
int ddkl=0;
char *s1="178543";
int result;
int del=4;
int i,j,length;
length=strlen(s1);
all=(int *)malloc(sizeof(int)*length);
for(i=0;s1[i];i++){
all[i]=s1[i]-'0';
printf("%c",s1[i]);
}
printf("\n");
qsort(all,length,sizeof(int),compar); //sort it
for(i=0;i<length;i++){
printf("%d",all[i]);
}
printf("\n");
temp=(int *)malloc(sizeof(int)*(length-del));
for(j=0;j<(length-del);j++){
temp[j]=0;
}
for(i=0;i<length;i++){
for(j=0;j<(length-del);j++){
if((s1[i]-'0')==all[j]&&temp[j]==0){
printf("%d",all[j]);
ddkl=ddkl*10+all[j];
temp[j]=1;
break;
}
}
}
printf("\n");
printf("%d",ddkl);
free(all);
free(temp);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -