㈠ 用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); //不包括末尾的'