選擇排序法:
int a[10] = {3,2,4,1,5,6,9,6,7,0};
int n = 0;
for (int i = 0; i<10-1; i++) {
for (int j = i+1; j<10; j++) {
if (a[i]>a[j]) {
n = a[i];
a[i] = a[j];
a[j] = n;
}
}
}
for (int i = 0; i<10; i++) {
printf("%3d",a[i]);
}
一、 編程實現對鍵盤輸入的英文名句子進行加密。用加密方法爲,當內容爲英文字母時其在26字母中的其後第三個字母代替該字母,若爲其它字符時不變。
void main()
{
char str[1024];
int i=0;
printf("請輸入一串字符:");
scanf("%s",str);
while(str[i]!='\0')
{
if((str[i]>='a'&&str[i]<='w')||(str[i]>='A'&&str[i]<='W'))
str[i]+=3;
else if((str[i]>='x'&&str[i]<='z')||(str[i]>='X'&&str[i]<='Z'))
str[i]=str[i]-26+3;
i++;
}
printf("加密後的字符串爲%s\n",str);
}
三、 從鍵盤輸入一指定金額(以元爲單位,如345.78),而後顯示支付該金額的各類面額人民幣數量,要求顯示100元、50元、10元、5元、2元、1元、1角、5分、1分各多少張。
void main()
{
int money[9]={10000,5000,1000,500,200,100,10,5,1};
float temp;
int data;
int result[9];
int i;
printf("請輸入一金額(精確到分):");
scanf("%f",&temp);
if(temp<0)
{
printf("輸入金額小於0,錯誤");
exit(0);
}
data=temp*100;
for(i=0;i<9;i++)
{
result[i]=data/money[i];
data=data%money[i];
if(i==6)
printf("%d角%d張;",money[i]/10,result[i]);
else if(i>6)
printf("%d分%d張;",money[i],result[i]);
else
printf("%d元%d張;",money[i]/100,result[i]);
}
}
五、 編程在一個已知的字符串中查找最長單詞,假定字符串中只含字母和空格,空格用來分隔不一樣單詞。
void main()
{
char str[]={"ASEEsdffw WEsdfe joiejorjerojeojr ASOJGWOEJIOJERJJ wejr"};
int len=0;
int temp;
int point;
int i=0;
while(str[i]!='\0')
{
temp=0;
while(str[i]!=' '&&str[i]!='\0')
{
temp++;
i++;
}
if(len<temp)
{
len=temp;
point=i-len;
}
if(str[i]=='\0')
break;
else
i++;
}
while(str[point]!=' '&&str[point]!='\0')
{
printf("%c",str[point]);
point++;
}
printf("\n");
}
六、 模擬n我的參加選舉的過程,並輸出選舉結果:假設候選人有四人,分別用A、B、C、D表示,當選某候選人時直接輸入其編號(編號由計算機隨機產生),若輸入的不是A、B、C、D則視爲無效票,選舉結束後按得票數從高到低輸出候選人編號和所得票數。
#define N 100
void main()
{
int num[5]={0,0,0,0,0};
int temp;
int i,j;
char str[]={"ABCD0"};
srand(time(0));
for(i=0;i<100;i++)
{
temp=1+(int)(5.0*rand()/(RAND_MAX+1.0));
printf("%d ",temp);
switch(temp)
{
case 1:
num[0]++;
break;
case 2:
num[1]++;
break;
case 3:
num[2]++;
break;
case 4:
num[3]++;
break;
case 5:
num[4]++;
break;
}
}
for(i=0;i<4;i++)
{
for(j=i+1;j<5;j++)
{
if(num[i]<num[j])
{
temp=num[j];
num[j]=num[i];
num[i]=temp;
temp=str[i];
str[i]=str[j];
str[j]=temp;
}
}
printf("\n編號爲%c,得票數爲%d",str[i],num[i]);
}
}
十、輸入一個五位之內的正整數,(1)判斷它是一個幾位數;(2)請按序輸出其各位數字;(3)逆序輸出其各位數字。
如輸入:56439,輸出:5位數
5,6,4,3,9
9,3,4,6,5
void main()
{
int n=0;
int inter;
int ys;
int num[5];
int i;
printf("請輸入一個5位之內的正整數:");
)scanf("%d",&inter);
if(inter<=0||inter>99999)
{
printf("輸入錯誤");
}
for(i=0;i<5;i++)
{
if(inter/int(pow(10,4-i))!=0)
break;
}
n=5-i; //位數
printf("%d位數\n",n);
ys=inter; //餘數
for(i=0;i<n;i++)
{
num[i]=ys/int(pow(10,n-i-1));
ys=ys%int(pow(10,n-i-1));
}
for(i=0;i<n;i++)
printf("%d ",num[i]);
printf("\n");
for(i=n-1;i>=0;i--)
printf("%d ",num[i]);
}
從0~1000000取值 找出重複的數//QQ號
int a[1000000] = {0};
int b[1000000] = {0};
for (int i = 0; i<1000000; i++) {
a[i] = arc4random()%1000000;
b[a[i]]++;
// printf("%d\t",a[i]);
}
for (int i = 0; i<1000000; i++) {
if (b[i]>1) {
printf("\n%d",i);
}
}