Re: Помогите разобраться
Добавлено: 05 ноя 2013, 14:52
А с convertNumber все нормально?Есть еще какие-то замечания вообще,не только по параметрам?
Код: Выделить всё
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
//#define MAX 10
int main(void)
{
//int mt[MAX][MAX];
int nr,nc,i,j,n;
/*puts("Size of matrix");
scanf("%i %i",&nr,&nc);*/
const int d=30;
int mt[d];
printf("Elements of matrix [%i*%i]:\n");
for(i=0;i<d;i++)
for(j=0;j<d;j++)
{
scanf("%i",mt[i][j]);
if(mt[i][j]==0)
break;
}
/*for(i=0;i<nr;i++)
for(j=0;j<nc;j++)
printf("%i",mt[i][j]);*/ //
printf("Enter element");
scanf("%i",&n);
float left=0;
float right=(float)d;
float seeknumber=(left+right)/2;
while(mt[(int)seeknumber]!=n && (right-left)>1)
{
if(mt[(int)seeknumber]<n)
left=seeknumber;
else
right=seeknumber;
seeknumber=(left+right)/2;
}
printf("%i",(int)seeknumber);
return 0;
}
Код: Выделить всё
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#define N 200
struct NumberInfo
{
long int num; // само число
char conv[42]; // сконвертированное число
};
int i;
// структура, хранящая информацию об одном числе
void show(int,int,char );
void convertNumber(int num, char* result);
void reverse(char* );
int main (void)
{
struct NumberInfo numbers[N];
int i;
printf("Number to convert? '0'-end" );
for (i=0;i<N;i++)
{
scanf("%li",&numbers[i].num);
if(numbers[i].num =='\0')
break;
else
convertNumber(numbers[i].num,numbers[i].conv);
}
// show(i,numbers[i].num,numbers[i].conv);
printf("%s", numbers[i].conv);
return 0;
}
void convertNumber(int num, char* result)
{
int base=3;
int k=0,n;
do
{
result[k]=(num%base)+'0';
k++;
num=num/base;
}
while(num!=0);
reverse(result);
}
void reverse(char* result)
{
if (result[0] == '\0' || result[1] == '\0')
{
return;
}
int left = 0, right = 0;
while (result[right + 1] != '\0')
++right;
for (; left < right; left++, right--)
{
int temp = result[align=left];
result[align=left] = result[align=right];
result[align=right] = temp;
}
//printf("%s\n", result);
}
/*void show(int count,int numbers[i].num,char *result)
{
int i;
printf("\n\t===============================================\n");
printf("\t| | |\n");
for(i=0;i<count;i++)
{
printf("\t| %4.li | %s |\n ", numbers[i].num,result);
}
printf("\t================================================\n");
}*/
Код: Выделить всё
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#define N 200
void show(int,int*,char *);
void convertNumber(int, char*);
void reverse(char* );
int main (void)
{
long int num; // само число
char conv[42]; // сконвертированное число
int numbers[N];
int i;
printf("Number to convert? '0'-end" );
for (i=0;i<N;i++)
{
scanf("%li",&num);
if(num =='\0')
break;
else
convertNumber(num,conv);
}
show(i,numbers,conv);
return 0;
}
int k=0;
void convertNumber(int num, char* result)
{
int base=3,n;
do
{
result[k]=(num%base)+'0';
k++;
num=num/base;
}
while(num!=0);
//printf("%s", result);
reverse(result);
}
void reverse(char* result)
{
if (result[0] == '\0' || result[1] == '\0')
{
return;
}
int left = 0, right = 0;
while (result[right + 1] != '\0')
++right;
for (; left < right; left++, right--)
{
int temp = result[align=left];
result[align=left] = result[align=right];
result[align=right] = temp;
}
// printf("%s\n", result);
}
void show(int count,int *n,char *result)
{
int i;
printf("\n\t===============================================\n");
printf("\t| | |\n");
for(i=0;i<count;i++)
{
printf("\t| %4.li | %s |\n ", n,result);
}
printf("\t================================================\n");
}