本文目录一览:
- 1、C语言:找规律
- 2、【题目】找规律: 有一些由3个数组成的数组,它们
- 3、c语言编程,对任意一组数字,如{3,1,4,7,2,1,1,2,2},输出其中出现次数最多的数字,并显示出现的次数。
- 4、各位c语言大神求解啊!!如何检验一列数里是否含有数字3?谢谢!
- 5、c语言编写程序求数列1,3,3,3,5,5,5,5,5,7,7,7,7,7,7,7的第四十项?
- 6、一个数列的规律是:1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,...。请你编程找出第n项是几。n在10000以内。
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;
}