/* exercise3-5 - Write the function itob(n,s,b) that converts the
 * integer n into a base b character representation in the string s.
 * In particular, itob(n,s,16) formats s as a hexadecimal integer in s.
 * 
 * exercise3-5.c - implements itob() with the modifications proposed in 
 * exercise3-5.  Prompts the user for a number to transform and a base
 * to transform it into.  Numbers larger than 9 are printed as a letter
 * [a-j] with a number of prime marks behind it.  Virtually any base can
 * be chosen, the only limit is the length of the string.  Try a fun
 * base, like 60 or 300 ^_^. */
int main()
{
	char line[MAXLINE];
	int x, base;
	
	printf("enter a number to transform with itoa():\n");
	gets(line);
	x = atoi(line);
	printf("enter a number to transform with itoa():\n");
	gets(line);
	base = atoi(line);
	newitoa(x, line, base);
	printf("%s\n", line);
	
	return 0;
}
Exemple #2
0
void wgzmat(char *filename, int atomnum, ATOM atom[], MOLINFO minfo)
{
	FILE *fpout;
	int i;
	/* int index; */
	char tmpchar0[10];
	char tmpchar1[10];
	char tmpchar2[10];
	char tmpchar3[10];

	if ((fpout = fopen(filename, "w")) == NULL) {
		fprintf(stderr, "Cannot open file %s, exit\n", filename);
		exit(1);
	}
	intercoord(atomnum, atom);
        fprintf(fpout, "%s\n", "--Link1--");
        fprintf(fpout, "%s%s\n", "%chk=", minfo.chkfile);
	fprintf(fpout, "%s\n\n", minfo.gkeyword);
	fprintf(fpout, "%s\n\n", "remark line goes here");
	fprintf(fpout, "%d%4d\n", minfo.icharge, minfo.multiplicity);
	element(atomnum, atom);
	for (i = 0; i < atomnum; i++) {
		newitoa(i + 1, tmpchar0);
		if (i == 0) {
			fprintf(fpout, "%5s\n", atom[i].element);
			continue;
		}
		if (i == 1) {
			strcpy(tmpchar1, "b");
			strcat(tmpchar1, tmpchar0);
			fprintf(fpout, "%5s%5d%8s\n", atom[i].element,
					atom[i].bondatom + 1, tmpchar1);
			continue;
		}
		if (i == 2) {
			strcpy(tmpchar1, "b");
			strcat(tmpchar1, tmpchar0);
			fprintf(fpout, "%5s%5d%8s", atom[i].element,
					atom[i].bondatom + 1, tmpchar1);
			strcpy(tmpchar2, "a");
			strcat(tmpchar2, tmpchar0);
			fprintf(fpout, "%5d%8s\n", atom[i].angleatom + 1, tmpchar2);
			continue;
		}
		strcpy(tmpchar1, "b");
		strcat(tmpchar1, tmpchar0);
		fprintf(fpout, "%5s%5d%8s", atom[i].element, atom[i].bondatom + 1,
				tmpchar1);
		strcpy(tmpchar2, "a");
		strcat(tmpchar2, tmpchar0);
		fprintf(fpout, "%5d%8s", atom[i].angleatom + 1, tmpchar2);
		strcpy(tmpchar3, "t");
		strcat(tmpchar3, tmpchar0);
		fprintf(fpout, "%5d%8s\n", atom[i].twistatom + 1, tmpchar3);
	}

	fprintf(fpout, "Variables:\n");
	fprintf(fpout, "b2= %8.4lf\n", atom[1].bond);
	fprintf(fpout, "b3= %8.4lf\n", atom[2].bond);
	fprintf(fpout, "a3= %8.4lf\n", atom[2].angle);
	for (i = 3; i < atomnum; i++) {
		newitoa(i + 1, tmpchar0);
		strcpy(tmpchar1, "b");
		strcat(tmpchar1, tmpchar0);
		strcpy(tmpchar2, "a");
		strcat(tmpchar2, tmpchar0);
		strcpy(tmpchar3, "t");
		strcat(tmpchar3, tmpchar0);
		fprintf(fpout, "%s= %8.4lf\n", tmpchar1, atom[i].bond);
		fprintf(fpout, "%s= %8.4lf\n", tmpchar2, atom[i].angle);
		fprintf(fpout, "%s= %8.4lf\n", tmpchar3, atom[i].twist);
	}
	fprintf(fpout, "\n");
	fclose(fpout);
}
Exemple #3
0
void wjzmat(char *filename, int atomnum, ATOM atom[], MOLINFO minfo)
{
	FILE *fpout;
	int i;
	/* int index; */
	char tmpchar0[10];
	char tmpchar1[10];
	char tmpchar2[10];
	char tmpchar3[10];

	if ((fpout = fopen(filename, "w")) == NULL) {
		fprintf(stderr, "Cannot open file %s, exit\n", filename);
		exit(1);
	}
	intercoord(atomnum, atom);
        fprintf(fpout, "%s\n", "This Jaguar input file generated by Antechamber");
	fprintf(fpout, "%s\n", "&gen");
        fprintf(fpout, "%s%d\n", "molchg=", minfo.icharge);
        fprintf(fpout, "%s%d\n", "multip=", minfo.multiplicity);
        fprintf(fpout, "igeopt=1\n");
        fprintf(fpout, "basis=6-31G*\n");
        fprintf(fpout, "dft=b3lyp\n");
        fprintf(fpout, "%s\n", "&");
        fprintf(fpout, "%s\n", "&zmat");

	for (i = 0; i < atomnum; i++) {
		newitoa(i + 1, tmpchar0);
		if (i == 0) {
			fprintf(fpout, "%8s\n", atom[i].name);
			continue;
		}
		if (i == 1) {
			strcpy(tmpchar1, "r");
			strcat(tmpchar1, tmpchar0);
			fprintf(fpout, "%8s%8s%8s\n", atom[i].name,
					atom[atom[i].bondatom].name, tmpchar1);
			continue;
		}
		if (i == 2) {
			strcpy(tmpchar1, "r");
			strcat(tmpchar1, tmpchar0);
			fprintf(fpout, "%8s%8s%8s", atom[i].name,
					atom[atom[i].bondatom].name , tmpchar1);
			strcpy(tmpchar2, "a");
			strcat(tmpchar2, tmpchar0);
			fprintf(fpout, "%8s%8s\n", atom[atom[i].angleatom].name , tmpchar2);
			continue;
		}
		strcpy(tmpchar1, "r");
		strcat(tmpchar1, tmpchar0);
		fprintf(fpout, "%8s%8s%8s", atom[i].name, atom[atom[i].bondatom].name ,
				tmpchar1);
		strcpy(tmpchar2, "a");
		strcat(tmpchar2, tmpchar0);
		fprintf(fpout, "%8s%8s", atom[atom[i].angleatom].name , tmpchar2);
		strcpy(tmpchar3, "d");
		strcat(tmpchar3, tmpchar0);
		fprintf(fpout, "%8s%8s\n", atom[atom[i].twistatom].name, tmpchar3);
	}

	fprintf(fpout, "&\n&zvar\n");
	fprintf(fpout, "r2= %13.8lf\n", atom[1].bond);
	fprintf(fpout, "r3= %13.8lf  ", atom[2].bond);
	fprintf(fpout, "a3= %13.8lf\n", atom[2].angle);
	for (i = 3; i < atomnum; i++) {
		newitoa(i + 1, tmpchar0);
		strcpy(tmpchar1, "r");
		strcat(tmpchar1, tmpchar0);
		strcpy(tmpchar2, "a");
		strcat(tmpchar2, tmpchar0);
		strcpy(tmpchar3, "d");
		strcat(tmpchar3, tmpchar0);
		fprintf(fpout, "%s= %13.8lf  ", tmpchar1, atom[i].bond);
		fprintf(fpout, "%s= %13.8lf  ", tmpchar2, atom[i].angle);
		fprintf(fpout, "%s= %13.8lf\n", tmpchar3, atom[i].twist);
	}
	fprintf(fpout, "&\n\n");
	fclose(fpout);
}