
你确定是到10000吗?16bit的整数会溢出的,32bit绝对没问题的
那可以根据公式来实现1+2+3+……+10000 = 10000(1+10000)/2
所以
#include <stdioh>
int main()
{
int n = 10000;
int sum = 0;
sum = (n+1)n/2;
printf("%d\n",sum);
return 0;
}
/money management system/
#include "stdioh"
#include "dosh"
#include "conioh"
main()
{
FILE fp;
struct date d;
float sum,chm=00;
int len,i,j=0;
int c;
char ch[4]="",ch1[16]="",chtime[12]="",chshop[16],chmoney[8];
pp:
clrscr();
sum=00;
gotoxy(1,1);printf("|---------------------------------------------------------------------------|");
gotoxy(1,2);printf("| money management system(C10) 200003 |");
gotoxy(1,3);printf("|---------------------------------------------------------------------------|");
gotoxy(1,4);printf("| -- money records -- | -- today cost list -- |");
gotoxy(1,5);printf("| ------------------------ |-------------------------------------|");
gotoxy(1,6);printf("| date: -------------- | |");
gotoxy(1,7);printf("| | | | |");
gotoxy(1,8);printf("| -------------- | |");
gotoxy(1,9);printf("| thgs: ------------------ | |");
gotoxy(1,10);printf("| | | | |");
gotoxy(1,11);printf("| ------------------ | |");
gotoxy(1,12);printf("| cost: ---------- | |");
gotoxy(1,13);printf("| | | | |");
gotoxy(1,14);printf("| ---------- | |");
gotoxy(1,15);printf("| | |");
gotoxy(1,16);printf("| | |");
gotoxy(1,17);printf("| | |");
gotoxy(1,18);printf("| | |");
gotoxy(1,19);printf("| | |");
gotoxy(1,20);printf("| | |");
gotoxy(1,21);printf("| | |");
gotoxy(1,22);printf("| | |");
gotoxy(1,23);printf("|---------------------------------------------------------------------------|");
i=0;
getdate(&d);
sprintf(chtime,"%4d%02d%02d",dda_year,dda_mon,dda_day);
for(;;)
{
gotoxy(3,24);printf(" Tab __browse cost list Esc __quit");
gotoxy(13,10);printf(" ");
gotoxy(13,13);printf(" ");
gotoxy(13,7);printf("%s",chtime);
j=18;
ch[0]=getch();
if(ch[0]==27)
break;
strcpy(chshop,"");
strcpy(chmoney,"");
if(ch[0]==9)
{
mm:
i=0;
fp=fopen("homedat","r+");
gotoxy(3,24);printf(" ");
gotoxy(6,4);printf(" list records ");
gotoxy(1,5);printf("|-------------------------------------|");
gotoxy(41,4);printf(" ");
gotoxy(41,5);printf(" |");
while(fscanf(fp,"%10s%14s%f\n",chtime,chshop,&chm)!=EOF)
{
if(i==36)
{
getch();
i=0;
}
if((i%36)<17)
{
gotoxy(4,6+i);
printf(" ");
gotoxy(4,6+i);
}
else
if((i%36)>16)
{
gotoxy(41,4+i-17);
printf(" ");
gotoxy(42,4+i-17);
}
i++;
sum=sum+chm;
printf("%10s %-14s %61f\n",chtime,chshop,chm);
}
gotoxy(1,23);printf("|---------------------------------------------------------------------------|");
gotoxy(1,24);printf("| |");
gotoxy(1,25);printf("|---------------------------------------------------------------------------|");
gotoxy(10,24);printf("total is %81f$",sum);
fclose(fp);
gotoxy(49,24);printf("press any key to");getch();goto pp;
}
else
{
while(ch[0]!='\r')
{
if(j<10)
{
strncat(chtime,ch,1);
j++;
}
if(ch[0]==8)
{
len=strlen(chtime)-1;
if(j>15)
{len=len+1; j=11;}
strcpy(ch1,"");
j=j-2;
strncat(ch1,chtime,len);
strcpy(chtime,"");
strncat(chtime,ch1,len-1);
gotoxy(13,7);printf(" ");
}
gotoxy(13,7);printf("%s",chtime);ch[0]=getch();
if(ch[0]==9)
goto mm;
if(ch[0]==27)
exit(1);
}
gotoxy(3,24);printf(" ");
gotoxy(13,10);
j=0;
ch[0]=getch();
while(ch[0]!='\r')
{
if (j<14)
{
strncat(chshop,ch,1);
j++;
}
if(ch[0]==8)
{
len=strlen(chshop)-1;
strcpy(ch1,"");
j=j-2;
strncat(ch1,chshop,len);
strcpy(chshop,"");
strncat(chshop,ch1,len-1);
gotoxy(13,10);printf(" ");
}
gotoxy(13,10);printf("%s",chshop);ch[0]=getch();
}
gotoxy(13,13);
j=0;
ch[0]=getch();
while(ch[0]!='\r')
{
if (j<6)
{
strncat(chmoney,ch,1);
j++;
}
if(ch[0]==8)
{
len=strlen(chmoney)-1;
strcpy(ch1,"");
j=j-2;
strncat(ch1,chmoney,len);
strcpy(chmoney,"");
strncat(chmoney,ch1,len-1);
gotoxy(13,13);printf(" ");
}
gotoxy(13,13);printf("%s",chmoney);ch[0]=getch();
}
if((strlen(chshop)==0)||(strlen(chmoney)==0))
continue;
if((fp=fopen("homedat","a+"))!=NULL);
fprintf(fp,"%10s%14s%6s",chtime,chshop,chmoney);
fputc('\n',fp);
fclose(fp);
i++;
gotoxy(41,5+i);
printf("%10s %-14s %-6s",chtime,chshop,chmoney);
}
}
getch();
}
/
程序功能:实现输入一个算式,然后按照同等优先级进行计算最终输出结果
/
#include <stdioh>
int calculate(int a, int b, char s) //计算函数,给定两个整数和运算符,返回结果
{
int c;
switch (s)
{
case '+' : c = a + b; break;
case '-' : c = a - b; break;
case '' : c = a b; break;
case '/' : c = a / b; break;
}
return c;
}
int string2int(char p) //转换函数,把下一个数字从字符串转化为整型
{
int a = 0;
while(1)
{
if(p=='+' || p=='-' || p=='' || p=='/' || p=='\0') break;
a = a10+((int)(p) - 48);
//将一个表示数字的字符变为整型,再减去48,就是对应的整型数值
p++;
}
return a;
}
void main()
{
char s[100];
int n1, n2,i=0;
printf("请输入算式:");
scanf("%s", s); //目前这里只能输入正整数,不能输入负的
n1 = string2int(s); //得到左 *** 作数
for(i=0;s[i]!='\0';i++) //循环下去,直到算式结束
{
if(s[i]=='+' || s[i]=='-' || s[i]=='' || s[i]=='/')//如果遇到运算符就进行计算
{
n2 = string2int(&s[i+1]); //得到右运算数
n1 = calculate(n1,n2,s[i]); //运算
}
}
printf("算式的答案是:%d\n", n1);
}
验证了1+210-10/2这个式子,结果为10。如果有疑问,还可以继续讨论。
/我用c++做一下,你可以把输入输出自己转化一下/
#include<iostreamh>
#define MaxSize 100
int data[MaxSize][MaxSize];
void func(char str[],int n)// str 是字符串,n是串长度
{
int i,j;
i=0;
for(i=0;i<n;i++)
{
j=0;
while(str[j]!='\0')
{
data[i][j]=(int)(str[(j+i)%n]-0x30);
j++;
}
}
}
void main()
{
char str[]="123";
/也可以自己输入串并检测串长度,这只是个测试程序/
int n=3;
func(str,3);
for(int i=0;i<n;i++)
{
int j=0;
while(j!=n)
{
cout<<data[i][j]<<' ';
j++;
}
cout<<endl;
}
}
以上就是关于用C语言编写一个小程序,要求从1+2+3+……+10000,然后把结果输出.全部的内容,包括:用C语言编写一个小程序,要求从1+2+3+……+10000,然后把结果输出.、用C语言写一个小程序!、C语言小程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)