Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2009, 01:49   #1
Lys
Новичок
Джуниор
 
Регистрация: 10.12.2009
Сообщений: 3
По умолчанию перевод с Java на C

помогите перевести программы с явы на си, пожалуйста.
совершенный новичок в этом деле..а на уроке мало чего объясняют, а хотят программы на Си. обязуюсь во всём разобраться и понять
в первой проге вводятся:
n - количество студентов
m - количество предметов
aine - название предмета
tud - код студента
hinne - оценка за предмет
ну и выглядит это дело всё в виде таблички.

package marks;
import java.util.Scanner;
/**
*
* @author ...
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int n;
int m;
int k;
String[] aine = new String[8];
String[] tud = new String[11];
int[] AK = new int[10];
int[] TK = new int[10];
int[][] h = new int[10][10];
int max;
int b;
int i;
int j;
String t;
String a;
float tkx;
float akx;
Scanner in = new Scanner(System.in);
do {
System.out.println("Enter n");
n = in.nextInt();
} while (n < 0 || n > 31);
do {
System.out.println("Enter m");
m = in.nextInt();
} while (m < 0 || m > 31);
for (j=0; j<m; j++) {
do {
System.out.println("Enter aine");
aine[j] = in.nextLine();
AK[j] = 0;
} while (aine[j].length() < 1);
}
for (i=0; i<n; i++) {
do {
System.out.println("Enter tud");
tud[i] = in.nextLine();
TK[i] = 0;
} while (tud[i].length() < 1);
for (j=0; j<m; j++) {
do {
System.out.println("Enter hinne");
h[i][j] = in.nextInt();
} while (h[i][j] < 0 || h[i][j] > 5);
AK[j] += h[i][j];
TK[i] += h[i][j];
}
}
/// veergude jarjestamine
for (j=0; j<(m-1); j++) {
max = j;
for (k=j+1; k<m; k++) {
if (AK[k] > AK[max]) {
max = k;
}
}
a = aine[max];
aine[max] = aine[j];
aine[j] = a;
for (i=0; i<n; i++) {
b = h[i][max];
h[i][max] = h[i][j];
h[i][j] = b;
}
b = AK[max];
AK[max] = AK[j];
AK[j] = b;
}
/// ridade jarjestmaine
for (i=0; i<(n-1); i++) {
max = i;
for (k = i+1; k<n; k++) {
if (TK[k] > TK[max]) {
max = k;
}
}
t = tud[max];
tud[max] = tud[i];
tud[i] = t;
for (j=0; j<m; j++) {
b = h[max][j];
h[max][j] = h[i][j];
h[i][j] = b;
}
b = TK[max];
TK[max] = TK[i];
TK[i] = b;
}


/// Tabeli valjastamine
System.out.print(" Tudengid ");
for (j=0; j<m; j++) {
System.out.print(" " + aine[j] + " ");
}
System.out.println(" Keskmine");
for (i=0; i<n; i++) {
System.out.print(" " + tud[i] + " ");
for (j=0; j<m; j++) {
System.out.print(" " + h[i][j] + " ");
}
tkx = (float) TK[i]/ (float )m;
System.out.format(" %6.2f \n", tkx);
}
System.out.print(" Keskmine ");
for (j=0; j<m; j++) {
akx = (float) AK[j]/ (float) n;
System.out.format(" %2.2f ", akx);
}
System.out.println(" ");

}

}
Lys вне форума Ответить с цитированием
Старый 10.12.2009, 01:50   #2
Lys
Новичок
Джуниор
 
Регистрация: 10.12.2009
Сообщений: 3
По умолчанию

package calendar;
import java.util.Arrays;
import java.util.Scanner;
/**
*
* @author ...
*/
public class Main {

/**
* @param args the command line arguments
*/
public static boolean is_leap(int year) {
if ( 0 == year % 4 && 0 != year % 100 || 0 == year % 400 ) {
return true;
} else {
return false;
}
}

public static int differ(int year, int month, int day) {
int start_year = 1900;
int start_month = 1;
int start_day = 1;
int days = 0;
int tmp = 0;
tmp = (year-start_year)/4*366+(year-start_year-(year-start_year)/4)*365;
//System.out.println((year-start_year)/4);
days += tmp;
switch (month-start_month) {
case 1: days += 31;
break;
case 2:
if (is_leap(year)) {
days += 31+29;
} else {
days += 31+28;
}
break;
case 3:
if (is_leap(year)) {
days += 31+29+31;
} else {
days += 31+28+31;
}
break;
case 4:
if (is_leap(year)) {
days += 31+29+31+30;
} else {
days += 31+28+31+30;
}
break;
case 5:
if (is_leap(year)) {
days += 31+29+31+30+31;
} else {
days += 31+28+31+30+31;
}
break;
case 6:
if (is_leap(year)) {
days += 31+29+31+30+31+30;
} else {
days += 31+28+31+30+31+30;
}
break;
case 7:
if (is_leap(year)) {
days += 31+29+31+30+31+30+31;
} else {
days += 31+28+31+30+31+30+31;
}
break;
case 8:
if (is_leap(year)) {
days += 31+29+31+30+31+30+31+31;
} else {
days += 31+28+31+30+31+30+31+31;
}
break;
case 9:
if (is_leap(year)) {
days += 31+29+31+30+31+30+31+31+30;
} else {
days += 31+28+31+30+31+30+31+31+30;
}
break;
case 10:
if (is_leap(year)) {
days += 31+29+31+30+31+30+31+31+30+31;
} else {
days += 31+28+31+30+31+30+31+31+30+31;
}
break;
case 11:
if (is_leap(year)) {
days += 31+29+31+30+31+30+31+31+30+31+30;
} else {
days += 31+28+31+30+31+30+31+31+30+31+30;
}
break;
case 12:
if (is_leap(year)) {
days += 31+29+31+30+31+30+31+31+30+31+30+31 ;
} else {
days += 31+28+31+30+31+30+31+31+30+31+30+31 ;
}
break;
default: days += 0;
}
days += day-start_day;
return days;
}

public static void main(String[] args) {
int year;
int month;
int day = 0;
int max_days;
int[] _long = {1, 3, 5, 7, 8, 10, 12};
int[] _normal = {4, 6, 9, 11};
String[] weekdays = {"Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday", "Sunday"};
Scanner in = new Scanner(System.in);
do {
System.out.println("Enter year");
year = in.nextInt();
} while (year < 1900 || year > 2900);
do {
System.out.println("Enter month");
month = in.nextInt();
} while (month < 1 || month > 12);
if (is_leap(year) && month == 2) {
max_days = 29;
} else if (Arrays.binarySearch(_long, month) >= 0) {
max_days = 31;
} else if (Arrays.binarySearch(_normal, month) >= 0) {
max_days = 30;
} else {
max_days = 28;
}
//System.out.println(max_days);
do {
System.out.println("Enter day");
day = in.nextInt();
} while (day < 1 || day > max_days);
System.out.println(day + "/" + month + "/" + year);
System.out.println(differ(year, month, day) + " days from 01/01/1900");
System.out.println(weekdays[(differ(year, month, day))%7]);

}

}
Lys вне форума Ответить с цитированием
Старый 10.12.2009, 01:50   #3
Lys
Новичок
Джуниор
 
Регистрация: 10.12.2009
Сообщений: 3
По умолчанию

ещё нужно вот эту, но не могу никак понять в чём ошибка..почему не сохраняется первоначальная длина. задача такая: вводишь какой-то набор символов(буквы,цифры..) и цифры будут заменяться на код ASCII, при этом, если ввёл 10 символов, то и выдавать должен 10, отбрасывая остальные. а у меня не отбрасывает. всё выводит.

public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String tmp;
int check=0;
String[] string = new String[25];
int i=0;
int[] lengths = new int[25];
Scanner in = new Scanner(System.in);
do {
System.out.println("Enter text");
tmp = in.nextLine();
string[i] = tmp;
lengths[i] = tmp.length();
i++;
} while (tmp.length() > 0);
for (int j=0; j<i; j++) {
for (int k=0; k<lengths[j]; k++) {
char c = string[j].charAt(k);
int n = c - '0';
if (check >= lengths[j]) {
if (n > -1 && n<10) {
check += 3;
System.out.print(48 + n);
} else {
check += 1;
System.out.print(c);
}
}

}
System.out.println("");
}
}

}
Lys вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите справиться с java.lang.OutOfMemoryError: Java heap space Levilaulada Помощь студентам 1 17.05.2009 10:59
Перевод из Кб в Мб и т.д. okgo Паскаль, Turbo Pascal, PascalABC.NET 8 18.11.2008 21:03
Java Enterprise Editon и Java Standard Editon Deikwon Общие вопросы по Java, Java SE, Kotlin 2 04.12.2007 10:00