求 Dev-C++ 的示例程序!!
RT
1、A+B问题(最普通的,读两个数,输结果)
2、Hello World
3、求N个数的和(标准整形就好,循环+数组)
4、比较两个数的大小,输出大的那个
5、读入一个实数,保留两位小数
6、读入一个字符串,判断是否回文
7、判断素数,输出Yes或者No
8、排序(冒泡)
9、十进制转二进制
10、斐波那契数列(输入N,输出斐波那契数列的第N个数,0开始)
11、高精度减法
---------------------------------------------------------------------------------------
再加个小小的要求,能不能把C/C++的程序结构、函数(Int这一类的)等都说一下?
程序请注明是C还是C++,Dev-C++能编译的,最好加上注释 展开
你说的这些我都写过,有些在我的博客里面,有的在我的OJ账号里面。
因为是我以前写的,所以我就直接拿来给你参考。如果对于某个具体的题目的代码要解释,可以给个联系方式。在这里我就直接贴代码,都是c和c++语言写的。
有using namespace的是c++的,其他的是c语言的。我用的不是你的那个软件,我用的是codeblocks来编写的。软件只是个工具,方便编写和提高效率,用记事本照样可以i写程序。
A+B(超级简单的加法,有几个简单的我就不写了)
#include<stdio.h>
int main()
{
int a,b;
while(~scanf("%d %d",&a,&b))
{
printf("%d\n",a+b);
}
return 0;
}
求N个数字的和(格式用图片说明)
#include<stdio.h>
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int i=1,k,sum=0;
if(n==0)break;
for(;i<=n;i++)
{
scanf("%d",&k);
sum+=k;
}
printf("%d\n",sum);
}
return 0;
}
高精度减法(输入数据后回车,再接着输入第二个数)(加减乘除我都有代码,我写过)
#include <iostream>
#include <cstring>
#define MAX 1000
using namespace std;
void InputNumber(char *num_1,char *num_2)
{
char *temp = new char [MAX];//用于存放输入的数据
memset(temp,0,sizeof(temp));cin>>temp;//清空容器并输入第一个数据
for(int i = num_1[0] = strlen(temp); i>0; i--)
num_1[i] = temp[ num_1[0] - i ] - '0';//逆序并转换成相应的数字
memset(temp,0,sizeof(temp));cin>>temp;//清空容器并输入第二个数据
for(int i = num_2[0] = strlen(temp); i>0; i--)
num_2[i] = temp[ num_2[0] - i ] - '0';//逆序并转换成相应的数字
delete [] temp;//释放临时容器
}
void CutNumber(char *num_1,char *num_2,char *sum)
{
sum[0] = max(num_1[0],num_2[0]);
for(int i=1; i <= sum[0]; i++)
{
sum[i] = num_1[i] - num_2[i];
if( sum[i] < 0 )
{
num_1[ i + 1 ]--;
sum[i] += 10;
}
}
}
void OutputNumber(char *sum)
{
for(int i = ++sum[0]; !sum[i] && 1 < i; sum[0]--,i--)
;//过滤前导0;避免结果全部是0,所以只留下一位不过滤
for(int i = sum[0]; i > 0; i--)
cout<<(int)sum[i];//输出结果
cout<<endl<<endl;
}
int main(void)
{
while(true)
{
char *num_1 = new char [MAX];memset(num_1,0,sizeof(num_1));
char *num_2 = new char [MAX];memset(num_2,0,sizeof(num_2));
char *num_3 = new char [MAX];memset(num_3,0,sizeof(num_3));
InputNumber(num_1,num_2);//输入数据
CutNumber(num_1,num_2,num_3);//相减
OutputNumber(num_3);//输出结果
delete [] num_1;delete [] num_2;delete [] num_3;
}
return 0;
}
回文判断(输入一个字符串)
#include<stdio.h>
int main()
{
char str1[105],str2[1005];
while(scanf("%s",str1)!=EOF)
{
int d=strlen(str1),i;
for(i=0;i<d;i++)
str2[i]=str1[d-1-i];
if(strcmp(str1,str2)==0)
printf("yes\n");
else
printf("no\n");
}
return 0;
}
冒泡排序(没有数据的输入,我是在程序里面写好了,稍加修改可以对于你输入的数据排序,这个代码是体现排序的思想)
/*****************************************************************************************
算法:
1、相邻两个元素进行比较,即0号元素和1号元素、1号元素和2号元素、2号元素和3号元素,依此类推。
2、每轮比较之后,就会产生一个最值,并且这个最值总是在最后面才出现,如同鱼儿吐泡。
3、第一轮比较之后,最值在最后面;第二轮比较之后,次最值在倒数第二个位置,依此类推。
*****************************************************************************************/
#include <io
using namespace std;
void Swap(int *elem_1, int *elem_2)
{
int temp = *elem_1;
*elem_1 = *elem_2;
*elem_2 = temp;
}
void Bubble_Sort(int *array,int len)
{
for(int i=0; i<len-1; i++)
for(int j=0; j<len-1-i; j++)
if(array[j] > array[j+1])
Swap(array+j,array+j+1);
}
int main(void)
{
int array[10]={4,9,7,0,3,1,5,8,2,6};
Bubble_Sort(array,10);
for(int i=0; i<10; i++)
cout<<array[i]<<" ";
return 0;
}
斐波那契数列
#include <stdio.h>
int f(int n)
{
int s;
if(n==1)
s=2;
if(n==2)
s=3;
if(n==3)
s=5;
if(n>=4)
s=f(n-1)+f(n-2)-f(n-3);
return s;
}
int main()
{
int n,s;
scanf("%d",&n);
s=f(n);
printf("%d\n",s);
return 0;
}
进制转换(先输入十进制的数,然后在输入要转换什么进制,二进制就输入2)
比如输入1279后回车 再输入8,就代表将1279转换成8进制的。
#include<stdio.h>
int main()
{
int n,r,s[100];
while(~scanf("%d%d",&n,&r))
{
int i=0;
while(n)
{
s[i++]=n%r;
n/=r;
}
s[i]='\0';
for(i--;i>=0;i--)
printf("%d",s[i]);
printf("\n");
}
return 0;
}
能教我吗?Q Q:1446449318
我只是个差生,菜鸟一个
2023-08-29 广告
C:
#include "stdio.h"
#include "stdlib.h"
C++:
#include <cstdio>
#include <cstdlib>
#include <iostream> //包括cin,cout
(1)
C:
int main()
{
int a,b;
scanf("%d %d",&a,&b); //输入
printf("%d",a+b); //输出
return 0;
}
C++:
using namespace std; 使用std名字空间,在c++中所有库函数都在std中
int main()
{
int a,b;
cin >>a>>b; //输入
cout <<a+b; //输出
return 0;
}
(2)
C:
int main()
{
printf("Hello World");
return 0;
}
C++:
using namespace std;
int main()
{
cout <<"Hello World";
return 0;
}
(3)
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
long long ans=0,t,n;
cin >>n;
for(int i=0;i<n;i++)
{
cin >>t;
ans+=t;
}
cout <<ans<<endl;
return 0;
}
(4)
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
cout <<max(a,b);
return 0;
}
(8)
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int n;
cin >>n;
int num[n];
for(int i=0;i<n;i++) cin >>num[i];
sort(num.num+n);
for(int i=0;i<n;i++) cout <<num[i];
return 0;
}
(10)
注意 乱序!
//矩阵乘法加快速幂
//时间复杂度为O(log N)
//杀鸡用牛刀……
#include <cmath>
#include <cstdio>
#include <cstring>
using namespace std;
int a[32][2][2], b[2][2];
int n, p, tmp;
int get_max(int x)
{
int i = 1;
while(i <= x) i *= 2;
i /= 2;
if (i) return i;
return 1;
}
void first()
{
a[0][0][0] = a[0][0][1] = a[0][1][0] = 1;
//a[1][0][0] = a[1][0][1] = a[1][1][0] = 1;
a[31][0][0] = a[31][0][1] = a[31][1][0] = 1;
for (int i = 1; i <= 30; ++i)
for (int j = 0; j < 2; ++j)
for (int k = 0; k < 2; ++k)
for (int t = 0; t < 2; ++t)
{
a[i][j][k] += (a[i-1][j][t]*a[i-1][t][k]) % p;
a[i][j][k] %= p;
}
}
int main()
{
freopen("a.in", "r", stdin);
int t;
scanf("%d", &t);
while(t-- > 0)
{
scanf("%d %d", &n, &p);
first();
while(n >= 1)
{
int tmp = get_max(n);
n -= tmp;
tmp = log2(tmp);
for (int i = 0; i < 2; ++i)
for (int j = 0; j < 2; ++j)
for (int k = 0; k < 2; ++k)
b[i][j] += (a[31][i][k]*a[tmp][k][j])%p;
for (int i = 0; i < 2; ++i)
for (int j = 0; j < 2; ++j)
a[31][i][j] = b[i][j]%p;
memset(b, 0, sizeof b);
}
printf("%d\n", a[31][1][0]);
memset(a, 0, sizeof a);
}
return 0;
}
先打这一点吧,在浏览器上打好累……
此外斐波那契数列有多种做法,你想要多快的.
感谢!!!
斐波那契数列就直接循环求好了
先把悬赏提到50,谢谢了!!
//像第三题这样的能不能加上C语言的程序?
谢谢了!!!一定采纳!
int main()
{
unsigned char t;
scanf("%d",&t);
switch(t)
{
case 'a':
case 'A':
printf("你是我的小苹果n");
break;
default: break;
}
}
//按下a键可显示"你是我的小苹果"
2019-04-19
包含你说的大部分要求的2048
#include<iostream>
#include <iomanip>
#include<math.h>
#include<stdlib.h>
#include<time.h>
#include <conio.h> //为了读取方向键
#include<windows.h>
using namespace std;
//srand( (unsigned)time( NULL ) ); //随机数种子 不能用在这里
int pane[4][4]; //棋盘
int N=1; //2的n次方
void showpane()//显示棋盘
{
cout<<setw(46)<<"2048 "<<endl;
cout<<setw(50)<<" |-----------------------|"<<endl;
for(int i=0;i<=3;i++)
{
cout<<setw(24)<<"";
for(int j=0;j<=3;j++)
{
//SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
if(pane[i][j]==0)
cout<<setw(2)<<"|"<<setw(4)<<" ";
else
cout<<setw(2)<<"|"<<setw(4)<<pane[i][j];
if(j==3)
{
cout<<setw(2)<<"|"<<endl;
cout<<setw(50)<<" |-----------------------|"<<endl;
}
}
}
}
void newgame() //开始游戏
{
N=1;
for(int i=0;i<=3;i++) //初始化棋盘
for(int j=0;j<=3;j++)
pane[i][j]=0;
srand( (unsigned)time( NULL ) );
int m=rand()%4;
int n=rand()%4;
int p=rand()%4;
int q=rand()%4;
pane[m][n]=pane[p][q]=2;
showpane();
}
int if2n(int x) //判断x是否是2的n次方
{
int flag=0;
for(int n=1;n<=11;n++)
{
if(x==pow(2,n))
{
flag=1;
if(n>N)
N=n;
return flag;
}
}
return flag;
}
int upmove() //上移
{
int flag=0;
for(int j=0;j<=3;j++)
for(int i=0;i<3;i++)
{
if(if2n(pane[i][j]+pane[i+1][j])==1)
{
pane[i][j]=pane[i][j]+pane[i+1][j];
pane[i+1][j]=0;
flag=1;
}
}
return flag;
}
int downmove() //下移
{
int flag=0;
for(int j=0;j<=3;j++)
for(int i=3;i>0;i--)
{
if(if2n(pane[i][j]+pane[i-1][j])==1)
{
pane[i][j]=pane[i][j]+pane[i-1][j];
pane[i-1][j]=0;
flag=1;
}
}
return flag;
}
int leftmove() //左移
{
int flag=0;
for(int i=0;i<=3;i++)
for(int j=0;j<3;j++)
{
if(if2n(pane[i][j]+pane[i][j+1])==1)
{
pane[i][j]=pane[i][j]+pane[i][j+1];
pane[i][j+1]=0;
flag=1;
}
}
return flag;
}
int rightmove() //右移
{
int flag=0;
for(int i=0;i<=3;i++)
for(int j=3;j>0;j--)
{
if(if2n(pane[i][j]+pane[i][j-1])==1)
{
pane[i][j]=pane[i][j]+pane[i][j-1];
pane[i][j-1]=0;
flag=1;
}
}
return flag;
}
int testup() //能否上移测试
{
int flag=0;
for(int j=0;j<=3;j++)
for(int i=0;i<3;i++)
{
if((if2n(pane[i][j]+pane[i+1][j])==1)&&pane[i+1][j])
{
flag=1;
}
}
return flag;
}
int testdown() //测试能否下移
{
int flag=0;
for(int j=0;j<=3;j++)
for(int i=3;i>0;i--)
{
if((if2n(pane[i][j]+pane[i-1][j])==1)&&pane[i-1][j])
{
flag=1;
}
}
return flag;
}
int testleft() //测试能否左移
{
int flag=0;
for(int i=0;i<=3;i++)
for(int j=0;j<3;j++)
{
if((if2n(pane[i][j]+pane[i][j+1])==1)&&pane[i][j+1])
{
flag=1;
}
}
return flag;
}
int testright() //测试能否右移
{
int flag=0;
for(int i=0;i<=3;i++)
for(int j=3;j>0;j--)
{
if((if2n(pane[i][j]+pane[i][j-1])==1)&&pane[i][j-1])
{
flag=1;
}
}
return flag;
}
int panemax() //棋盘最大数
{
int max=pane[0][0];
for(int i=0;i<=3;i++)
for(int j=0;j<=3;j++)
if(pane[i][j]>max)
max=pane[i][j];
return max;
}
int ifwin() //判断是否胜利
{
int flag=0;
if(panemax()==2048)
{
cout<<setw(45)<<"You Win!"<<endl;
flag=1;
}
return flag;
}
int ifGameOver() //判断是否游戏结束
{
int flag=0;
if(testup()+ testdown() + testleft() + testright() == 0)
{
cout<<setw(43)<<"Game Over!"<<endl;
flag=1;
}
return flag;
}
void addnewnumberup() //上移后添加新数
{
srand( (unsigned)time( NULL ) );
int n;
if(N==1)
n=1;
else
n=(rand()%(N)+1);
int newnumber=pow(2,n);
for(int i=3;i>=0;i--)
for(int j=0;j<=3;j++)
if(pane[i][j]==0)
{
pane[i][j]=newnumber;
return;
}
}
void addnewnumberdown() //下移后添加新数
{
srand( (unsigned)time( NULL ) );
int n;
if(N==1)
n=1;
else
n=(rand()%(N)+1);
int newnumber=pow(2,n);
for(int i=0;i<=3;i++)
for(int j=0;j<=3;j++)
if(pane[i][j]==0)
{
pane[i][j]=newnumber;
return;
}
}
void addnewnumberleft() //左移后添加新数
{
srand( (unsigned)time( NULL ) );
int n;
if(N==1)
n=1;
else
n=(rand()%(N)+1);
int newnumber=pow(2,n);
for(int j=3;j>=0;j--)
for(int i=0;i<=3;i++)
if(pane[i][j]==0)
{
pane[i][j]=newnumber;
return;
}
}
void addnewnumberright() //右移后添加新数
{
srand( (unsigned)time( NULL ) );
int n;
if(N==1)
n=1;
else
n=(rand()%(N)+1);
int newnumber=pow(2,n);
for(int j=0;j<=3;j++)
for(int i=0;i<=3;i++)
if(pane[i][j]==0)
{
pane[i][j]=newnumber;
return;
}
}
int GetDirection() //读取方向
{
int ret = 0;
do
{
int ch = _getch();
if(isascii(ch))
continue;
ch = _getch();
switch(ch)
{
case 72:
ret = 2; // top
break;
case 75:
ret = 1; // left
break;
case 77:
ret = 3; // right
break;
case 80:
ret = 4; // down
break;
default:
break;
}
} while (ret == 0);
return ret;
}
int main() //主函数
{
system("color f9");
int makesure=1;
while(makesure)
{
system("cls");
newgame();
while(ifwin()+ifGameOver()==0)
{
int c=GetDirection();
switch(c)
{
case 2:
if(testup()==1)
{ upmove();
addnewnumberup();
system("cls");
showpane();
}
break;
case 4:
if(testdown()==1)
{
downmove();
addnewnumberdown();
system("cls");
showpane();
}
break;
case 1:
if(testleft()==1)
{
leftmove();
addnewnumberleft();
system("cls");
showpane();
}
break;
case 3:
if(testright()==1)
{
rightmove();
addnewnumberright();
system("cls");
showpane();
}
break;
default:
break;
}
}
cout<<setw(43)<<"你的最后成绩为:"<<panemax()<<endl;
cout<<setw(60)<<"若要重新开始游戏请输入1,若要结束请输入0。"<<endl;
cin>>makesure;
while(makesure!=1&&makesure!=0)
{
cout<<"输入不正确,请重新输入!"<<endl;
cin>>makesure;
}
}
cout<<"再见!"<<endl;
cout<<"本游戏来源网络"<<endl;
cout<<"-+-+-+-+-+-+-+-+-+-+-+-"<<endl;
cout<<"界面空白吗?如果空白请按1,否则按其他键." <<endl;
int makesure2;
cin>>makesure2;
{
if
(makesure2==1);
system("cls");
cout<<"按任意键关闭"<<endl;
system("pause");
return 0;
}
int i,n,k;
for(i=1;i<=300000000;i++)n=k/2;
printf(".");
for(i=1;i<=300000000;i++)n=k/2;
printf(".");
for(i=1;i<=300000000;i++)n=k/2;
printf(".");
for(i=1;i<=300000000;i++)n=k/2;
printf(".");
for(i=1;i<=300000000;i++)n=k/2;
printf(".\n");
system("cls") ;
system("pause");
return 0;
}