69,372
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 10000
int myatof(char *s)
{
char *head=s;
char *p=s;
while(*s!='\0')
if(*s=='$' || *s==',' || *s=='.' ||*s=='\n')
s++;
else
*p++=*s++;
*p='\0';
return atoi(head);
}
void reverse(char *s)
{
char *p=strlen(s)-1+s;
char temp;
for(;s<p;s++,p--){
temp=*s;
*s=*p;
*p=temp;
}
}
void myatoi(int sum,char *s)
{
char *p=s;
int n;
n=sum%100;
sum/=100;
*s++ ='$';
do {
*s++ = sum%10+'0';
if((s-p)%4==0 && sum>10)
*s++=',';
}while((sum/=10));
*s='\0';
reverse(1+p);
*s++='.';
*s++=n/10+'0';
*s++=n%10+'0';
*s='\0';
}
main()
{
FILE *fp;
int sum,num;
char s[20];
int n,i;
fp=fopen("a.txt","r");
while(fscanf(fp,"%d",&n),n!=0) {
fgets(s,20,fp);
sum=0;
for(i=0;i<n;i++) {
fgets(s,20,fp);
num=myatof(s);
sum+=num;
}
myatoi(sum,s);
printf("%s\n",s);
}
return 0;
}
// ZOJ2476 Total Amount.cpp : Defines the entry point for the console application.
//
// #include "stdafx.h"
// #include "stdafx.h"
// #define DEBUG
#include <fstream>
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <string>
#include <memory.h>
#include <math.h>
#include <algorithm>
#include <numeric>
#include <functional>
#include <limits>
#include <assert.h>
#include <ctype.h>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
using namespace std;
int main(void)
{
#ifdef DEBUG
freopen("data.txt","r",stdin);
freopen("result.txt","w",stdout);
#endif
char ch;
int n;
double sum;
char amount[20];
while(scanf("%d",&n)&&n)
{
sum=0.0;
getchar();
while(n--)
{
int ind=0;
getchar();
while(ch=getchar())
{
if(ch=='\n') break;
if(ch!=',')
amount[ind++]=ch;
}
amount[ind]='\0';
sum+=atof(amount);
}
sprintf(amount,"%0.2lf",sum);
int len=strlen(amount),ind=0,comma=0;
char result[30];
for(int i=len-1;i>=len-3;--i)
result[ind++]=amount[i];
for (int i=len-4;i>=0;--i)
{
result[ind++]=amount[i];
++comma;
if(comma%3==0 && i)
result[ind++]=',';
}
result[ind]='$';
for (int i=ind;i>=0;--i)
{
putchar(result[i]);
}
printf("\n");
}
return 0;
}