好文档 - 专业文书写作范文服务资料分享网站

C语言打印图形

天下 分享 时间: 加入收藏 我要投稿 点赞

.

3-17. 编程,输入一行文字,判断该行文字是否是回文。 例如,读入:MA DAM I MAD AM 输出:YES 读入:ABCDBA. 输出:NO ————

#include main() {

char strA[80],strB[80],temp; int i,j; gets(strA);

for(i=0;i

if(!strcmp(strA,strB))printf(\ else printf(\}

3-18. 编程,输入若干个字符串,当输入字符串的长度为0时停止输入。输出最长的字符串。 ————

#include main() {

char strA[80]=\ int i; do {

gets(strA);

if(strlen(strA) > strlen(strB) )strcpy(strB,strA); }while( strlen(strA)!=0 ); printf(\ puts(strB); }

3-19. 编程,输入若干个字符串,当输入字符串的长度为0时停止输入,输出最大字符串。 ————

#include main() { char strA[80]=\ int i; do {

.

.

}

gets(strA);

if( strcmp(strA,strB)>0 )strcpy(strB,strA); }while( strlen(strA)!=0 ); printf(\puts(strB);

3-20.“1898─要发就发”。将不超过2004的所有素数从小到大排成第一行,第二行上的每个

数都等于它“右肩”上的素数与“左肩”上的素数之差。编程,输出第二行数中满足下列条件的整数:第二行数中若干个连续整数的和恰好是1898。

第一行:2 3 5 7 11 13 17 ..... 1979 1987 1993 第二行: 1 2 2 4 2 4 ..... 8 6 ———— 暂无答案

#include int prim[10000];

int falg[10000] = {0}; int sum[10000]; int num[10000]; int can[10000][2]; int main(){

int total = 0, i, j, k;

for(i = 2; i <= 2004; i ++){

if(!falg[i]) prim[ ++ total] = i; for(j = 1; j <= total; j ++){

if(i * prim[j] > 2004 ) break; falg[i * prim[j]] = 1;

if(i % prim[j] == 0) break; } }

for(i = 2; i <= total; i ++){

num[i] = prim[i] - prim[i - 1];

sum[i] = sum[i - 1] + prim[i] - prim[i - 1]; }

j = 1; k = 1;

for(i = 2; i <= total; i ++)

while(sum[i] - sum[j] >= 1898){ if(sum[i] - sum[j] == 1898){ can[k][0] = j; can[k ++][1] = i;

.

.

break; } j ++; }

for(i = 1; i < k; i ++){

printf(\%d %d\\n\can[i][0], can[i][1], sum[can[i][1]] - sum[can[i][0]]);

printf(\ }

return 0; }

3-21. 用空格分开的字符串称为单词。输入多行字符串,直到遇到了单词\时才停止。最

后输出单词的数量。 ————

#include main() { char strA[80]=\ int i,n=0; do { scanf(“%s”,strA); n++; }while(strcmp(strA,\ printf(\}

3-22. 编程,输入两个字符串s1、s2和s1中任意字符k,在s1中的指定字符k的位置处插入

字符串s2并输出。 ————

#include main() { char strA[80],strB[80],ch; int i,j,lenA,lenB; puts(\ puts(\ puts(\ lenA=strlen(strA);lenB=strlen(strB); for(i=0;i

.

.

}

{

if(strA[i]==ch) {

for(j=lenA;j>=i;j--)strA[j+lenB]=strA[j]; for(j=0;j

puts(strA);

3-23.任意输入一个4位自然数,输出该自然数的各位数字组成的最大数。例如,输入1593,

则输出为9531。

———— main() { int a[4],n,m,i,j; printf(\ scanf(\ for(i=0;i<4;i++){a[i]=n;n/=10;} for(i=0;i<4;i++)for(j=i+1;j<4;j++) if(a[i]

3-24. 编程,输入两个已经按从小到大顺序排列好的字符串,将两个字符串合并为一个新的从

小到大排列字符串,并删除重复的字符,然后输出该字符串。 ————

#include main() { char strA[80],strB[80],temp; int i,j,k; gets(strA); gets(strB); strcat(strA,strB); for(i=0;i

.

.

}

if(strA[i]

{temp=strA[i];strA[i]=strA[j];strA[j]=temp;} } }

for(i=0;i

for(j=i+1,k=0;j

if(k!=0)for(j=i;j

puts(strA);

3-25. 编程,输入五个字符串,请将它们按从小到大的顺序排列后输出。 ———— main() {

char a[6][80]; int i,j;

for(i=0;i<5;i++){printf(\ for(i=0;i<5;i++)for(j=i+1;j<5;j++) if(strcmp(a[i],a[j])>0)

{strcpy(a[5],a[i]);strcpy(a[i],a[j]);strcpy(a[j],a[5]);} for(i=0;i<5;i++)puts(a[i]); }

3-26. 编程,输入五个字符串,请将它们按从大到小的顺序排列后输出。 ———— main() {

char a[6][80]; int i,j;

for(i=0;i<5;i++){printf(\ for(i=0;i<5;i++)for(j=i+1;j<5;j++) if(strcmp(a[i],a[j])<0)

{strcpy(a[5],a[i]);strcpy(a[i],a[j]);strcpy(a[j],a[5]);} for(i=0;i<5;i++)puts(a[i]); }

3-27. 编程,将输入的两行字符串连接后,将新串中全部空格移到串首后输出。 ————

#include

.

C语言打印图形

.3-17.编程,输入一行文字,判断该行文字是否是回文。例如,读入:MADAMIMADAM输出:YES读入:ABCDBA.输出:NO————#includemain(){charstrA[80],strB[80],temp;i
推荐度:
点击下载文档文档为doc格式
6ha7i0yqsj2teb88j4i568ub00wtn2005zw
领取福利

微信扫码领取福利

微信扫码分享