您的位置:

c语言找规律有一列数如3,1235813找规律第n个数c语言

本文目录一览:

C语言:找规律

#include stdio.h

void Update(char now[])

{

    char result[128] = {'\0'};

    int i = 0;

    char now_char;

    int now_count = 0;

    char new_str[16] = {'\0'};

    for (i = 0; i = strlen(now); i++)

    {

        if (0 == i)

        {

            now_char  = now[i];

            now_count = 1;

            continue;

        }

        if (now[i] != now_char)

        {

            sprintf(new_str, "%d%c", now_count, now_char);

            strcat(result, new_str);

            now_char = now[i];

            now_count = 1;

            continue;

        }

        now_count++;

    }

    strcpy(now, result);

    return;

}

void main()

{

    int N = 0;

    int M = 0;

    char ans[128];

    scanf("%d", N);

    while (N--)

    {

        scanf("%d", M);

        strcpy(ans, "1");

        while (--M)

            Update(ans);

        printf("%s\n", ans);

    }

    return;

}

【题目】找规律: 有一些由3个数组成的数组,它们

c语言经典100题:【程序1】题目:有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数都是多少1.程序分析:可填在百位,十位,个位的数字都是1,2,3,4.组成所有的排列后再去掉不满足条件的排列.2.程序源代码:main(){inti,j,k;printf("\n");for(i1;i2)/*如果是闰年且月份大于2,总天数应该加一天*/sum++;printf("Itisthe%dthday.",sum);}【程序5】题目:输入三个整数x,y,z,请把这三个数由小到大输出.1.程序分析:我们想法把最小的数放到x上,先将x与y进行比较,如果xy则将x与y的值进行交换,然后再用x与z进行比较,如果xz则将x与z的值进行交换,这样能使x最小.2.程序源代码:main(){intx,y,z,t;scanf("%d%d%d",x,y,z);if(xy){tx;xy;yt;}/*交换x,y的值*/if(xz){tz;zx;xt;}/*交换x,z的值*/if(yz){ty;yz;zt;}/*交换z,y的值*/printf("smalltobig:%d%d%d\n",x,y,z);}【程序6】题目:用*号输出字母c的图案.1.程序分析:可先用'*'号在纸上写出字母c,再分行输出.2.程序源代码:#include"stdio.h"main(){printf("helloc-world!\n");printf("****\n");printf("*\n");printf("*\n");printf("****\n");}【程序7】题目:输出特殊图案,请在c环境中运行,看一看,verybeautiful!1.程序分析:字符共有256个.不同字符,图形不一样.2.程序源代码:#include"stdio.h"main(){chara176,b219;printf("%c%c%c%c%c\n",b,a,a,a,b);printf("%c%c%c%c%c\n",a,b,a,b,a);printf("%c%c%c%c%c\n",a,a,b,a,a);printf("%c%c%c%c%c\n",a,b,a,b,a);printf("%c%c%c%c%c\n",b,a,a,a,b);}【程序8】题目:输出9*9口诀.1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列.2.程序源代码:#include"stdio.h"main(){inti,j,result;printf("\n");for(i1;ib)a:b这是条件运算符的基本例子.2.程序源代码:main(){intscore;chargrade;printf("pleaseinputascore\n");scanf("%d",score);gradescore90'a':(score60'b':'c');printf("%dbelongsto%c",score,grade);}【程序15】题目:利用条件运算符的嵌套来完成此题:学习成绩90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。1.程序分析:(ab)?a:b这是条件运算符的基本例子。2.程序源代码:main(){intscore;chargrade;printf("pleaseinputascore\n");scanf("%d",score);gradescore90?'A':(score60?'B':'C');printf("%dbelongsto%c",score,grade);}【程序16】题目:输入两个正整数m和n,求其最大公约数和最小公倍数.1.程序分析:利用辗除法.2.程序源代码:main(){inta,b,num1,num2,temp;printf("pleaseinputtwonumbers:\n");scanf("%d,%d",num1,num2);if(num1{tempnum1;num1num2;num2temp;}anum1;bnum2;while(b!0)/*利用辗除法,直到b为0为止*/{tempa%b;ab;btemp;}printf("gongyueshu:%d\n",a);printf("gongbeishu:%d\n",num1*num2/a);}【程序17】题目:输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数.1.程序分析:利用while语句,条件为输入的字符不为'\n'.2.程序源代码:#include"stdio.h"main(){charc;intletters0,space0,digit0,others0;printf("pleaseinputsomecharacters\n");while((cgetchar())!'\n'){if(c'a'c'a'c'0'c0){x1(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/x2x1;day--;}printf("thetotalis%d\n",x1);}【程序22】题目:两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单.a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单.1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数.2.程序源代码:main(){chari,j,k;/*i是a的对手,j是b的对手,k是c的对手*/for(i'x';ia[j])minj;tema[i];a[i]a[min];a[min]tem;}/*outputdata*/printf("Aftersorted\n");for(i0;iprintf("%5d",a[i]);}【程序38】题目:求一个3*3矩阵对角线元素之和1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出.2.程序源代码:main(){floata[3][3],sum0;inti,j;printf("pleaseinputrectangleelement:\n");for(i0;i50)againtrue;elseagainfalse;}}【程序46】题目:宏#define命令练习(1)程序源代码:#include"stdio.h"#defineTRUE1#defineFALSE0#defineSQ(x)(x)*(x)voidmain(){intnum;intagain1;printf("\40:Programwillstopifinputvaluelessthan50.\n");while(again){printf("\40:Pleaseinputnumber");scanf("%d",num);printf("\40:Thesquareforthisnumberis%d\n",SQ(num));if(num50)againTRUE;elseagainFALSE;}}【程序47】题目:宏#define命令练习(2)程序源代码:#include"stdio.h"#defineexchange(a,b){\/*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/intt;\ta;\ab;\bt;\}voidmain(void){intx10;inty20;printf("x%d;y%d\n",x,y);exchange(x,y);printf("x%d;y%d\n",x,y);}【程序48】题目:宏#define命令练习(3)程序源代码:#definelag#definesmay)x:y#defineminimum(x,y)(xy)y:xvoidmain(){inta10,b20;#ifdefmaxprintf("\40:thelargeroneis%d\n",maximum(a,b));#elseprintf("\40:theloweroneis%d\n",minimum(a,b)

c语言编程,对任意一组数字,如{3,1,4,7,2,1,1,2,2},输出其中出现次数最多的数字,并显示出现的次数。

如果是任意大小的数字,那么有些麻烦,可以设定两个默认值代表最多的数字和最多的次数。接着去轮询,并计数,如果次数大于默认值,替换即可。遍历完成即可输出那两个值。

如果是0~9,或者字母的话,比较简单。可以定义定长的数组,数组下标代表具体值,数组的内容代表值出现的次数,遍历一遍原数组,得到次数。遍历定长数组,得到值。

第一种方法代码如下,第二种自己琢磨吧。

#include stdio.h

#include stdlib.h

int main(int argc, char const *argv[])

{

    int num = 0;    //用来存最多值的数值,默认为0

    int coumt = 0;  //用来存最多值的个数,默认为0

    int temp = 0;   //中间变量

    int n = 0;      //数组的个数

    int *p = NULL;  //开辟空间的首地址,等价于a[0]

    printf("Pls enter the number of arrays:");

    while(1)

    {

        scanf("%d", n);

        if(n = 0)

            printf("Error is scanf,pls try again\n");

        else

            break; 

    }

    p = (int *)malloc(sizeof(int) * n);

    if(p == NULL)

    {

        printf("Error is malloc\n");

        return -1;

    }

    for (int i = 0; i  n; ++i)

    {

        printf("Pls enter the num for buf[%d]=", i+1);

        scanf("%d", p[i]);

    }

    for (int i = 0; i  n; ++i) //简单的遍历查找

    {

        temp = 0;

        for (int j = i; j  n; ++j)

        {

            if (p[i] == p[j])

            {

                temp++;//计数

            }

        }

        if(coumt  temp)//如果次数大于默认值,替换

        {

            coumt = temp;

            num = p[i];

        }

    }

    

    printf("The most common number is %d and the coumt is %d\n", num, coumt);

    return 0;

}

#include stdio.h

#include stdlib.h

int main(int argc, char const *argv[])

{

    int coumt = 0;  //用来存最多值的个数,默认为0

    int temp = 0;   //中间变量,用于计数

    int n = 0;      //数组的个数

    int *p = NULL;  //开辟空间的首地址,等价于a[0]

    int *num = NULL; //开辟空间的首地址,等价于a[0]

    int flag = 0;   //定义一个标志位,用于计数重复的次数的数值出现

    printf("Pls enter the number of arrays:");

    while(1)

    {

        scanf("%d", n);

        if (n = 0)

            printf("Error is scanf,pls try again\n");

        else

            break; 

    }

    p = (int *)malloc(sizeof(int) * n);//存放你要的数组

    if (p == NULL)

    {

        printf("Error is malloc for p\n");

        return -1;

    }

    num = (int *)malloc(sizeof(int) * n);//存放最多数值的数组,最坏情况,没有重复数字

    if (num == NULL)

    {

        printf("Error is malloc for num\n");

        return -1;

    }

    for (int i = 0; i  n; ++i)

    {

        printf("Pls enter the num for buf[%d]=", i+1);

        scanf("%d", p[i]);

    }

    for (int i = 0; i  n; ++i) //简单的遍历查找,找出最大的次数

    {

        temp = 0;

        for (int j = i; j  n; ++j)

        {

            if (p[i] == p[j])

            {

                temp++;//计数

            }

        }

        if (coumt  temp)//如果次数大于默认值,替换

            coumt = temp;

    }

    for (int i = 0; i  n; ++i) //简单的遍历查找,找出重复的次数

    {

        temp = 0;

        for (int j = i; j  n; ++j)

        {

            if (p[i] == p[j])

            {

                temp++;//计数

            }

        }

        if (coumt == temp)//如果次数等于最大值,存储

        {

            num[flag] = p[i];

            flag++;

        }

    }

    

    for (int i = 0; i  flag; ++i)

        printf("The most common number is %d and the coumt is %d\n", num[i], coumt);   

    free(p);

    free(num);

    return 0;

}

各位c语言大神求解啊!!如何检验一列数里是否含有数字3?谢谢!

#includestdio.h

int main()

{

int i,a[10],tag;//数组的长度自己定

tag=0;

printf("please innput data\n");//输入数字

for(i=0;i10;i++)

{

scanf("%d",a[i]);

getchar();

} //逐个输入

for(i=0;i10;i++)

{

if(a[i]==3)

{

tag++;

}

else continue;

}

printf("%d 3 have been found\n",tag);

}}

c语言编写程序求数列1,3,3,3,5,5,5,5,5,7,7,7,7,7,7,7的第四十项?

main(){

int i,n;

i=1;

n=15;

while (n=0){

n=n-i;

i=i+2;

}

printf("%d",i);

}

或:

#includestdio.h

main()

{

int i,j,k,cont=0;

for(i=1;cont15;i+=2)

{for(j=1;j=i;j++) { baiprintf("%d ",i); cont++; k=i; }

}printf("\n");

printf("the 15th is:%d\n",k);

}

扩展资料:

有一类数列,既不是等差数列,也不是等比数列,若将这类数列适当拆开,可分为几个等差、等比或常见的数列,然后分别求和,再将其合并即可.

例如:an=2n+n-1,可看做是2n与n-1的和

Sn=a1+a2+...+an

=2+0+22+1+23+2+...+2n+n-1

=(2+22+...+2n)+(0+1+...+n-1)

=2(2n-1)/(2-1)+(0+n-1)n/2

=2n+1+n(n-1)/2-2

参考资料来源:百度百科-数列求和

一个数列的规律是:1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,...。请你编程找出第n项是几。n在10000以内。

#includestdio.h

int main()

{

int i,j,k,n,count;

while(scanf("%d",n)!=EOF)

{

for(i=1,count=0,k=0;countn;i++) //从1开始增加,直到出现了n个数为止

{

count+=i; //每到i就意味着增加了i个数

for(j=0;ji;j++,k++) //输出i个i ,如果不需要输出序列,只需找到第n个数,此循环可去掉。

{

if(kn) //只输出n个数

printf("%d ",i);

else

break;

}

}

printf("\n第%d项为:%d\n",n,i-1);

printf("====================\n");

}

return 0;

}