㈠ 用c語言編程!要求輸入1,輸出A.輸入26,輸出Z。輸入27輸出AA.輸入28輸出AB。也就是一個
此題可以做,代碼如下:
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
intmain(void){
charR[27]="ZABCDEFGHIJKLMNOPQRSTUVWXY",tmp[10];
intn,i,j;
while(1){
printf("Inputn(intn>0)... n=");
if(scanf("%d",&n)&&n>0)
break;
printf("Error,nmust>0:");
}
for(i=0;n;i++){
if((tmp[i]=n%26)==0)
n--;
n/=26;
}
for(j=i-1;j>=0;j--)
printf("%c",R[tmp[j]]);
printf(" ");
return0;
}
但這並不是二十六進制問題。按照數系基數的定義,基數是多少,就得有多少個符號來表示該進制的數據,但必須包含符號0代表「沒有」。A~Z共26個符號這沒錯,但沒有包含0,且當輸入26時二十六進制應該輸出A0,這題中要求是輸出Z,緊接著27卻要輸出AA,這就不符合二十六進制的定義了……供參考。
㈡ C語言編程 判斷字元串中「ab」字元串數,要求用函數實現
#include <stdio.h>
#include <string.h>
void delete1(char s[],char t[])
{
int i,j,k;
int flag=0;
//一:代碼缺陷
//增加判斷。應該
if(!s || !t)
{
return;
}
if(strlen(s) < strlen(t))
{
return;
}
for( i=j=0; s[i]!='\0';i++)
{
for( k=0; t[k]!='\0';k++)
{
if(s[i+k]==t[k]) flag=1;
else
{
flag=0;
break;
}
}
//二,邏輯錯誤
/*if(flag)
{
s[j++]=s[i+k];
i=i+k+1;
} */
//改成
if(flag)
{
strcpy(&s[i], &s[i + k]);
}
//if(!flag) s[j++]=s[i];
if(!flag) continue;
}
//s[j]='\0';
printf("%s\n",s);
}
main()
{
char str1[255],str2[255];
printf("please input the article:\n");
gets(str1);
printf("please input the words you want to delete:\n");
gets(str2);
delete1(str1,str2);
}
㈢ C語言輸入ababab輸出a=3,b=3怎麼寫這個程序(給定一段ab組成的字元串求連續a,b的段數
C語言輸入ababab輸出a=3,b=3怎麼寫這個程序
這似乎是求這個字元串中a和b的個數分別是多少啊?
(給定一段ab組成的字元串求連續a,b的段數,----這是什麼意思?)
請把題目的全文發一下哈。
㈣ 用C語言編程序輸出a,b,ab,c,d,ac,bc,abc,d,ad,bd,cd,abd,acd,
atmystate用的是遞歸方式實現,我用非遞歸實現如下:
#include<stdio.h>
#include<string.h>
#defineSTR "abcd" //可以換成abcdef或其他字元,只要不超過8
intmain()
{
inti=0;
intj=0;
inttemp=0;
char*p=STR;
intlen=strlen(STR); //不包括末尾的'